「コンパイラ」を含む日記 RSS

はてなキーワード: コンパイラとは

2022-11-30

anond:20221130155602

無粋なツッコミをしとくと

OSI参照モデルネットワークプロトコルプログラム言語RFC

この辺はいわゆるコンピュータサイエンス範疇じゃないよね。特に4つ目。

コンパイラを作るための理論とかはコンピュータサイエンス範疇と言っていいだろうけど

特定言語知識を教えるのは学問領域じゃないと思うぞ

anond:20221129085814

とあるメーカーが出してるソフトの設定ファルを読み込んで色々やろうぜっていう案件やった時にコンパイラ作った経験が役に立ったか

構文解析とか知らない人たちが書いてたバグらだらけのコードを綺麗に書き直した

元の担当者たちからは訳がわからないとか言われたけど

2022-11-29

anond:20221129085814

申し訳ないが、コンピュータサイエンスを履修せずにプログラマーになった人に多いのは

まずそもそも困っていることに気付けていないのでスタートラインに立ててない

スラムダンクでいうところの「下手くその 上級者への道のりは 己が下手さを知りて一歩目」というやつだ

ちなみにコンピュータサイエンスってのはオーダの話だけではなくて

例えばメモリCPUキャッシュスワップなどのスピードやその使い方、コンパイラによる最適化OSリソース共有、状態管理の考え方なんかも含まれ

性能をもっと上げたいっていうときにオーダだけじゃなくてそういうことを網羅的に考える必要がある

ところがそもそもコンピュータサイエンスを履修してないと「性能向上が必要かどうか」を分かって無い人が多い

「これ、1秒で処理終わってるけど、本来なら1msec以内に終わるはずじゃない?」

というのに気付けてない場合が多い

1秒で処理が終わればユーザ体験は満足してしまうので気付けないんだが、ユーザが増えてくるとユーザ体験が途端に悪くなってくる

そのときに「プログラミング上のミスがあって性能が劣化している」ということに気付くか、「性能限界からさらなるリソース必要」と誤解するかによってビジネス上の戦略まで変わってくる

それだけではなくてクリーンアーキテクチャみたいな話も「機能が増えたんだから実装時間がかかってバグが増えるのは当たり前」というところに落とし込んでしまうか

もっとアーキテクチャを整理して考えれば機能追加も楽になるはず」という考えに至るか、というところで大きな差がある

この辺りでビジネス上の戦略まで変わってしまうからGoogleMicrosoftなんかは積極的コンピュータサイエンスを履修してる人を雇う

もう少し簡単に言うと、コンピュータサイエンスを履修してないプログラマーに多いのが

「今は動いているけれど触るとどうなるかわからない」

というソフトウェアを作りがちなところだと思う

レビューしてても

「とりあえず動いてはいるけれどこれではダメ

というコメントをするが、大抵

「動いているのでいいでしょwww」

みたいな感じで返してくるからどうしようもない

2022-10-04

anond:20221004142716

ただ、C++であればインクリメントは前置で書いたほうがいいね、習慣として。

これってコンパイラカスだった太古の昔の老人の習慣と思ってるんだけど現代でもなんか意味あるの?

2022-09-16

anond:20220916100408

マクロは呼び出しコストがないから。

コンパイラ技術が発達して、短い関数はインライン展開するとか最適化されるようになったか重要性は無くなったけど。

2022-09-12

イラスト向けAI絵描き「Waifu Diffusion」を使ってみて感じた限界

Danbooruの素性に注目が集まっているが、ここでは議論しない。


promptを英語で書く必要があり、闇雲に入力しても意図した画像が出てこない。

promptチェッカーのような、正しいpromptが書けているのかどうかをコンパイラ確認できず、自身画像を見て反映されているか判断する必要がある。

promptに記載した内容が1枚の画像に全て反映されているわけではなく、複数枚の画像を出力してみて、promptがなんとなく反映されているかな、といったものになる。


Danbooruタグが使えるということが正しいように広まっているが、半分正解で半分間違っている。

「bow」というタグがあるが弓を表しているわけではなく、女の子キャラクターの髪の毛が弓なりの形状をしていることを示すのに、Danbooruではタグ付けされている(ように見える)。

「hair_bow」というタグもあり、こちらも髪留めリボンのことを示す。「Waifu Diffusion」に書いて出てくるのはこちらになる。一般的に使われるのもこちらだろう。

面倒なのがここからなのだが、「Waifu Diffusion」は修飾子がどこにかかっているのか曖昧判断をする。

弓を描きたいわけではないので、何かしら髪にまつわる単語が「bow」の近くにあることになるが、「Waifu Diffusion」はリボンを描く。

どうも「Waifu Diffusion」は英文法を知っているわけではなさそうだ。

また「hair_bow」をつけたキャラクター代表的なのが東方霊夢なのか、霊夢要素がそこかしこに現れる。


もう一つ例を出そう。

Danbooruタグに「small_breasts」という胸の小さいタグがあるが、「Waifu Diffusion」は胸の大きな描写をする。

xxxx, small_breasts, xxxx」といったようなpromptを書くと、胸の小さいキャラを描きたいのだなと判断すると思うが、

「Waifu Diffusion」は胸という単語があるから胸を描画した、となる。

どうもアンダースコアでつながっている単語を1単語とは認識してない。

breasts」という単語が入っている限り、巨乳が描かれ、さらに胸をさらけ出した描画がなされるので重々注意されたし。

小さい胸のキャラクターを描きたい場合は「breasts」という単語をpromptに入れてはいけない。


上記のこともあり、Danbooruタグはあまり効かない。!!!やカッコ( ) で括った単語は強調されるらしいが、あまり意味がない。

またDanbooruタグの詳細を見てみるとわかるが、1kを超えるような数の多いタグ曖昧ものが多くなり、詳細な分類がなされたものは数が少なくて効かない。


他に、髪の指定英語で行うのはかなり困難だ。

ロングやショートくらいはすぐ指定出来るが、それくらいだ。

「floating_hair」というイラストでよくある髪束をウネウネさせるタグがあるが、「Waifu Diffusion」は認識せず、キャラクターは空を飛ぶ。

「short_hair_with_long_locks」という、ショートだが頬の横の髪が長いというタグがあるが、まず認識されない。

では日本人女性現実でしている髪型対応する英語があるかというと、Google検索して出てくるような和製英語入力しても描画されない。

アイドル系だとツインテールメジャーだと思うが、英語圏の人は「twintail hair は pigtail hair」だというが、pigtail hairは日本人感覚からすると編み込みが多くリボンが沢山付き、どうも違うとなる。

ゆるふわアレンジなんてのは、かなり難しい。


他に、現状「Waifu Diffusion」では指を描くのがかなり苦手だ。

promptを工夫すれば出来るのかもしれないが、色々試した結果、顔との両立が出来ない。

先の事例と同様に、手を隠すといったpromptは指定しようとしても、promptに指や手といった単語が入っているだけで問答無用で画面に出てくる。

「何かを消す」といった指定はほぼ無効になる。


promptの参考書についても課題に感じる。

「Stable Diffusion」では本当に効くかどうかはさておき、検索できるサイトがいくつか出てきている。

しかし「Waifu Diffusion」で、アニメを描きたい場合の参考はない。

「Waifu Diffusion」を作った人達Discordtext-to-imageがあり、画像とpromptが載っているが、多くがクオリティの低いものであり、高速で流れるチャットから見つけるのは困難だ。

SNS記事でまとめている人も少ない。


Danbooruデータベース学習しているということで、実際にダウンロードして中を見てみたが、

玉石混交というか、説明がしにくいが、少なくとも自分の描きたいものとは違っていた。

テイストが揃ってないので、同じ単語が示す物でも画像ごとに違い、そりゃアーティスト名で絞りたくなるよなってのは気持ちはわかる。

(「Waifu Diffusion」でDanbooruアーティスト名を入れても、狙ったテイストにはならないが。絵が多いアーティスト名でもならない。)


また「Waifu Diffusion」はキャラクターの顔については崩れないので凄いと言われるが、

実際に使うと、「full body」といった全身を描きたいと思っても顔のアップばかりが出力され、全身が描けたと思っても顔が崩れて描写されない。


アニメのような演出をしようと思った場合エフェクトをどう指定するか、という問題にぶち当たる。

Danbooruタグにはエフェクトに関するタグはない。

アニメならではの光の演出があるわけだが、どう指定するのかわからない。

英語名前がついているのだろうか。

最近イラストで多い、逆光で顔の前面は薄い影で、なぜか鼻の高い所にはハイライトが入っているが、前髪の影は額に落ちているという、

どこから光が入っているんだ?というのも指定できるのだろうか?

まだ3Dでやっているような顔前面セル塗りの方が指定やすかろう。


「Waifu Diffusion」には70ワードという制限があり、細かく指定していくと軽く超えていく。

超えた分は無視され、絵を文字表現するとなるのは難しいのを実感する。

img2imgによって、ポーズ指定、髪の毛をどこで括るかといった指定はしやすくなるが、それでもpromptが必要となる。

Danbooruタグが反映されない問題解決されたとしても、タグの細分化はされているようでいて、実際使うとなると足りてない。


使いこなせる人はいるのだろうか?

2022-08-07

独学で未経験からWebエンジニアになり1年で月収が前職比50万アップした

第一に、増田にいる人間はろくでもない。

自分は上段に座しているつもりで偉そうな上から目線の半分的外れ説教だの、はたまたその体すら為していない放言だのを安全位置から投げつけたいだけのカスしかここにはいない。

このタイトルを見て、意識高い系文系イキリ勘違い野郎に何事か物申してやろうと考えたそこの画面の前でニチャニチャしているパソカタオタク(パソコンタカタキモオタク: 声は小さいがタイプ音はでかい)のことである

あるいは増田のことかもしれない。増田は日頃増田に生息している訳ではないが。

お分かりの通り、これは釣り記事であるそもそも意識高い系文系イキリ勘違い野郎増田記事を書くわけがない。が、一応タイトルに嘘はない。

ので意識高い系文系イキリ勘違い野郎を志す意識高い系文系イキリ勘違い野郎予備軍のことを思って以下を書く。

ちなみに、この記事タイトル増田が一番嫌いなタイプのそれである自分で設定したのに今、額に青筋が浮かんでいる。

1. やったこ

本項ではWebエンジニアになるにあたって増田がやったことを列挙する。

1. プログラミングを独学する

2. スクールに入る

3. アルバイトをする

なるほど、至極単純である。では順に詳細を見ていく。

プログラミングを独学する

ここに関しては特に言うこともない。

ネット記事を見ながらCだのDだのC++だのを実際に吐くまで勉強した。

その経験を踏まえて意識高い系文系イキリ勘違い野郎予備軍にアドバイスするならば、独学の上で最も身になるのは"C++を用いて簡単スクリプト言語インタプリタ実装する"ことである

インタプリタ実装という作業プログラミング言語のものに対する解像度を飛躍的に向上させる。

不可思議お約束の塊であった文法意味論因数分解されるように頭の中で整理され、ブラックボックスであった標準ライブラリの内部について想像が及ぶようになる。

道具たるプログラミング言語に対する理解は、当然その使途であるプログラミングのものを助ける。

ところでパソカタオタク諸兄姉は「なぜ今C++などという時代遅れのクソ言語を」と思ったかもしれない。

かにC++はもはや洗練から程遠い聳えるバベルの塔であるしかし、こと言語実装習得においてはこれほど適している言語もない。

C++GC付きの他言語比較して抽象度が低く、全てを自身管理しなければならないが故に"便利な魔法"にあまり頼れないのである

また、C++で導入された様々な思想イディオムは他の言語にも大きく引き継がれている。

例えば洗練という意味C++の対極に位置するRustという言語は、もはや本質的にはC++のものである

Rustの代名詞である所有権ライフタイムはそれぞれC++反省からまれ言語要素であるし、move semanticsはC++11におけるmove semanticsと同様のものである

GC付き言語利用者にとってしばしば混乱の原因となりそうな`str`と`String`も`std::string_view`と`std::string`を知ってさえいれば迷いの発生する余地はない。

他のより抽象化された言語についても、C++との対応を考えることでその言語や標準ライブラリのもの実装について十分に理解を深めることができる。

なぜならば過去の多くのスクリプト言語コンパイラC/C++によって実装されていることが多いかである

そんなわけで、増田は"C++を用いて簡単スクリプト言語インタプリタ実装する"ことを勧めている。

スクールに入る

増田が入ったスクールは、多くのそれが半年あたり70万程度の授業料を取る(らしい)のに対して同期間で28万程度と非常にリーズナブルであった。

ただし、卒業までは最低4年と長期間を要するし、増田卒業後も2年さらに通った。

そう、大学(院)である

おいそこの意識高い系文系イキリ勘違い野郎予備軍、カスみたいなプログラミングスクールに入るな。

教育機関情報工学を学べ。

ところでそろそろ察せられるだろうが、増田の前職とは学生を指している。

アルバイトをする

大学情報工学を教えてくれるが、別段それを学んだからといってプログラミングができるようになるわけではない。あくまでそれらは相補的なものである

一方で、独学では分野に偏りが出がちだし、なにより独学にも金が要るので学生身分にとってプログラマバイトは良い選択肢である

アルバイトITエンジニア経験に含めなくて良いのか怪しいが、増田バイト業務内容はWebエンジニアと言いきってよいか悩ましい類だったので嘘は吐いていない。

ちなみに増田増田に書き込むような人間であるからして社会性というものが欠落している。

バイト大学院1回生ときにバックレてやめた。

2. 現職

大学院を卒業したのでいやいや就職した。

ちなみに月収は大学院2回生収入0時代から差分で算出して+50万なのでつまるところそれが現在の月収である

増田にとって低くはないが、決してITエンジニアとして高い方であると主張することはできない程度の額である

釣りのためにタイトルに含めた以上最低限の説明のはしたが、増田は金の話をすると脳の血管がブチギレそうになるのでこれ以上その話はしない。

3. 結びに意識高い系文系イキリ勘違い野郎予備軍へ

ここまで読んだならわかると思うが、増田意識高い系文系イキリ勘違い野郎(タイプ音がでかい)ではなく、パソカタオタク(パソコンタカタキモオタク: 声は小さいがタイプ音はでかい)である

そして、意識高い系文系イキリ勘違い野郎予備軍に言うべきことがあるとすれば、そもそもこの記事をここまで読んでいる時点でITエンジニアには向いていないので止めといたほうがよい。

また、ひょっとすると思い違いをしているかもしれないが、ITエンジニアというのは大抵 (増田社会経験がほぼないので一般論を言うことは出来ないが) 意識高い系イキリキラキラ野郎サイドではなくパソカタオタクばかりである

というよりTwitterにいる意識高い系イキリキラキラ野郎は多くの場合意識高い系文系イキリ勘違い野郎予備軍を養分にする人でなしである。騙されてはならない。

また、一つ理解しなければならないのは意識高い系文系イキリ勘違い野郎予備軍諸兄姉が張り合わなければならないのは、プログラミングスクールの同期でも、「#駆け出しエンジニアと繋がりたい」している有象無象でもなく、幼少から寝食や友人や遊びを自ら捨ててパソカタにのめり込んでいた、そして現在進行系でのめり込んでいる歴10年や20年をゆうに超えるSSRソカタオタクであるということである (そしてそれはNRソカタ増田も同様である)。

彼らが「スクール半年学びました」で並び立てるような人間でないのは単純な算数でわかるほど明らかである。悪いこと言わんからキラキラWebエンジニアを目指すのはやめとけ。

あるいはそれでも目指すのであれば自分が何を捧げられるのかを考えた方がいい。

2022-08-05

anond:20220805141349

IDEじゃないけど、昔の言語の静的型付けvs動的の議論で、動的型付け派はコンパイラエラー発見できないと言われたら、スペルミスしたり引数を間違えるのはバカ普通に言い放ってたな。

2022-07-12

anond:20220712193809

svelteはstack overflowのsurveyでも好きなframework最上位にきている。まあ、あれはコンパイラだけど。

2022-06-01

anond:20220601055550

1980年代半ばから後半ぐらいかなぁ。

インターネットなんて、企業メールネットニュースをUUCPで回すのが普通

ソフトウェアダウンロードなんて、回線費用が高すぎて、大学などを除いて論外な時代があった。

当時は高価なコンパイラが何と無料FSFブランドGCCの最新版リリースされたのをネットニュースで知ったら、

磁気テープMITから航空便で取り寄せて、ダビングしてバイク東京周辺のソフトハウスをまわって配布。

こういうことをやってた人達はだいたい、もうすぐ還暦だな。

今でもInteropを元気に闊歩してるおじいちゃん達だ。

2022-05-27

anond:20220527014837

だよなぁ。アセンブラ が出て来ても、高級言語コンパイラが出て来ても、プログラミング仕事が消えて無くなるわけではないし、むしろ以前より高度な概念理解する必要になって来ているし、一方キーパンチャーのような職業消滅した。

経理世界でも、単純作業スキルはどんどん需要が減ったけれども、経理会計知識自体必要性は消えて無くなりはしない。

2022-05-22

すべてがFになったら

以前にどこかで「仮にすべてのコンパイラが同時に消えた場合、復旧までどれくらい時間がかかるか?」

というの読んだ気がする。その記事では確か、「わりとすぐ復旧する」と結論されていた。ような気がする。

もっと突き進んで、電子データ世界で同時にぜーーんぶ破壊されるような事態が起きたら、どうなるんだろう。

そこまでいかんでもWindowsが全く起動しなくなるとかiOSが全く起動しなくなるだけでも、被害は甚大だよなぁ

世の中すべてが、ものすごく不確かなものに、ひどく依存し過ぎている気がして怖くなる時がある。

ISMAPも当てにならんらしいしな・・・

からどうしたというわけでもないが。

2022-05-21

anond:20220521082738

人にも読めるソースアセンブリ言語に変換してくれるCが出来た。

  ・・・ そこはC言語よりだいぶ前の話だろ。C言語以前にコンパイラはいろいろあったぞFORTRANとかCOBOLとかPL/1とかALGOLとか。

C言語の売りは、構造化とシンプルさ(高級アセンブリ言語などともあだ名された)だと思うぞ。

anond:20220521222557

プログラムなんかもう書かんでいいようになるで

  って、懐かしい台詞だな。FORTRANコンパイラの開発プロジェクトが始まった頃、「自動プログラミング」というキャッチフレーズが出てきて、「もう人間プログラミングしなくてよくなる」とか言われてたとか。

今風に言えば「コンパイラ 」と「もう人間ハンドアセンブラ しなくてよくなる」みたいな感じかな。いや、「ライブラリクラス)に任せときゃいい」かな。

2022-05-15

GAFAで5年エンジニアしてて気づいたこ

思いついた順に書いてるからまとまりなくてすまん

テクニカルな話はリーク避けるとほぼ何も言えないか会社の出してるACM論文ブログOSS読んでどうぞ

anond:20220514113202

やっぱりコンパイラだよね。やっぱり静的型定義言語だよね。Go, Swift, Rust, C, Pascal/Delphi, Ada, …..

2022-05-12

趣味プログラマー大学情報工学を専攻→オリジナルアプリ開発

というまっとうな経緯を持つものだが。

大学の同期を見てても思ったことだが、「プログラム勉強する」「スキルを上げる」とか言ってる奴って、根本的に「(自分感性に正直に)使いやすさを考えて設計にこだわる」という感覚がびっくりするぐらい皆無なのが一番どうかと思う。

コーディング自体は、計算オーダーが違うほどの馬鹿設計をしなければ、今どきコンパイラがどうせ最適化してくれるし動くものが確実に書ければどうでもいいよ。

プログラム能力マウント取る気はないけど、そういう性根の意識が曲がった奴は嘆きたくはなる。

anond:20220512082208

そういう考えだと実業務のときにクッソ遅いコード書いたりしちゃうでしょ

コンパイラ最適化ってまだまだ完璧じゃないし

お遊びレベルならそれでいいけど、運用とき困るよなぁ、という気が

2022-04-25

anond:20220425193347

ならないんだよなあ。

そもそも数学プログラミングモチベーションが違うんだよね。数学における証明構成証明と非構成証明があるように、「手続き」というのは数学のごく一部でしかない。それに対して、プログラミングは「手続き」が全てだよね(って言うと関数型とかの人があれこれ言ってくるけど、関数型言語だって結局コンパイラ手続きに落とせる範囲のものしかない)。

機械学習については、論文書いてる奴も含めて大多数はプログラミング脳なので、最初からコードで発想してそれを論文にするために無理矢理数式で書いてるだけというものほとんど。無理矢理書いた後付けに過ぎないか意味不明ものも多いしコードに落とせないもの普通にある。だから数式は無視して著者のリポジトリにあるコードだけ見てればいいよ。実用観点ではコード公開されてない論文は全無視で何も問題ない。

MATLABは今後どういう扱いになるのか

MATLABを使っているが、どうも中途半端存在になっている。

端的にいうと、お金を払っただけの価値があるか、だ。


言語的な競合はもちろんPythonになるが、Pythonとの差別化が出来てない。

Python側は純粋Pythonだと遅いが、今はC++ラッパーとして使うのが多くなっており、Pythonの方が速いということが起こる。

最近MATLABJITコンパイラによって昔ほどfor文を気にしなくても良くなっているが、それでも遅さは気になる。

GPU分散コンピューティングMATLAB対応しているが、使いこなすのに苦労する。

GPU使う場合だと、CUDAをそのまま使いたくなるし、GPUメモリーとのやり取りといったオーバーヘッドが加わるので、

単純にGPU使うようにしたら速くなるってことはなく、処理時間を測りながらトライアルを繰り返すことになる。


MATLAB側のエディタ機能が増えているとはいえPython+VSCodeとの対抗となると辛いものがある。


toolboxを追加で課金してCコードを吐き出すことはできるが、劇的に速くなるわけではない。



②toolboxは沢山あるが、使い始めると色々足りておらず、Pythonエコシステムが欲しくなる

toolboxは追加課金で開放されるDLCだ。

toolboxが多くなりすぎていることと、手を広げすぎているのかtoolboxを買って使ってみると色々足りないことがある。

買う前に調べるわけだが、色んな事ができそうだと思って購入し、実際使っていくと、嘘は言ってないが事あるごとに使いにくい所が出てくる。

GUI周りに関しては不満が多い。



GUIが重い、使いにくい

事あるごとにGUIが重たいのが気になって仕方ない。

また使いにくいのが多い。デザインが良いというのはコンシューマ用ではないので気にしないが、重たさと使いにくさで嫌になってくる。


④plotや可視化周りが重い

エクセル普通になっている今、エクセルで出来ないことが出来て欲しいが、そうなっていない。



色々書いたが、MATLAB中途半端なのだ

そりゃ便利な場合もある。あるが、かなり限定的だったりする。

2022-03-31

[]WAIFUbot(プログラミング言語

10年余の歴史を持つ動的型付けプログラミング言語

アメリカ制のダッチワイフに内蔵されたマイコン操作するために開発された言語であり、キーボードモニタを繋げてユーザー自由コードを書き換えることが可能であった。

センサ入力および出力(肢体の動きや発声発熱乾燥 機)等が制御可能であり、当時は革新的であった。

現在は使われておらず、Pythonに置換されている。

WAIFUbot搭載のレガシーダッチワイフに対しては有志がPythonからトランスコンパイラ提供している。

ログイン ユーザー登録
ようこそ ゲスト さん