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

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

2024-03-31

なんで動的言語を嫌うやつってマウント取ろうとするんだ

プログラミング言語動的言語を嫌って静的言語こそ至高みたいな主張の人って結構みかけるんだけど、なんでみんな偉そうでマウント取ろうとしてるの?

パフォーマンス面での優位ならまだわかるけど主張は基本型がないことをディスってる

 

頭が良ければ脳内整合性の取れるコードを書けるわけだからコンパイラサポートがなくても書けるほうが優秀なのは自明のはず

コンパイラサポートしてもらわないとまともなもの書けないよというほうが能力としては劣ってる

 

劣っててコンパイラサポートがほしいならそれでもいいんだけど、なぜ自分無能だということを偉そうにアピールできるのかがわからない

自分頭悪いので静的言語じゃないと書けないんですーとか言われたらじゃあそういう言語使うかとなるけど、

動的言語とかゴミ使う価値ないとか、◯◯言語は消えるべき、とか言われたらお前の頭が悪いだけなのになぜそれに合わせる必要があるの?としか思えない

 

無能ほど謙虚な態度が取れないってやつなのか・・・

2024-03-25

anond:20240324025847

プログラミング興味持てねーなーでもプログラミング能力人生を左右するしなあと悩んで、少しでもプログラミングに興味持てればとCPUの作り方とかOSの作り方とかコンパイラの作り方とかパタヘネとかSICPとか色々勉強してみたけど、やっぱ全然興味ないってことが身に沁みただけだったわ。

2024-03-23

IT国家資格を作って最難関資格にするには

出題科目

■必修科目

1. セキュリティ

2. ネットワーク

3. アルゴリズム

4. AIデータサイエンス

5. PMマネジメント・開発技法実務

6. Webアプリ開発実務-バックエンド

- Rails, Laravel, Django, Spring

7. Webアプリ開発実務-フロントエンド

- React, Vue

8. OS

- カーネルドライバコンパイラ

選択科目(1科目選択

1. クラウドインフラ開発実務

- AWS, Azure, GCP, Firebase

2. ハードウェア組み込み実務

3. 3Dゲーム開発実務

- Unity, UnrealEngine, WebXR

4. アプリ開発実務

- Flutter, Swift, Kotolin

5. IoT, メカトロニクス実務

- ROS, CAD, C++

2024-03-22

もうパターン化された"CS学生"羨ましすぎるんだよ,NAND回路でtetris,RustでRDBMS実装する,CPU自作OS自作コンパイラ自作TCP/IPプロトコル自作エミュレーター自作キーボード自作計算機プログラム構造解釈,長いこと大学いたけど,全然出来なかった やりたい

から修士2年で,今はまだ就活中だがそのうち終わるし,授業ももう無いしで,なんか純粋知的好奇心を満たすやつをやりたくなってきた

この一年で徐々に徐々に,回路触りたいとか,低レイヤやりたい欲求が再燃しつつあった

奨学金も借りて経済的に少し余裕ができたせいもある

本や部品を買うためにバイトを増やすと,肝心の活動に避ける時間がなくなってしまうし

もちろん,研究でもある種の好奇心は満たせるし,就活で停滞していたぶんを早く取り返したい気持ちもある

自分の受け止め方は,

研究

→ググっても出てこないことを調べて,ググったら出てくる情報にする,新規性客観的な正しさが重要

好奇心も満たされ,場合によっては就活アピールにもなる

進学しない人でも実績増やせば奨学金免除も狙える(大学院の話)

趣味ソフトウェア開発

車輪の再開発OK

でもまあ,一発ネタでもなんでもいいけど,解決したい課題とかテーマ必要な感じ,独自性があるといろいろと受けがよい

チーム開発したとか,身近な人に使ってもらったWebサービスとかだと,エンジニアでない人事担当者にも伝わりやすそう

自分場合就活でとてもいいアピールになっている

アルバイト

→金が儲かる,なんか社会の役に立つ(たぶん),なんか金儲けに役立つスキルが身に付く

上司や先輩から色々教われるのがよい

動機(金が儲かる,人の役に立つ)があるおかげで,もともとそんなに興味が無いようなことでも,調べて勉強したりするきっかけになって面白い

みたいな感じなんだけど,

ArduinoLEDをチカチカさせる,CPU作る,みたいなことはわかる人にはそれなりに評価されるのかもしれないが,短期的に対外的評価に繋がりにくいように思うし,すぐには自分生活をよくしないので,学生自分ですら後回しにしがちだったと気づいた

でもクラフト系(?)でしか満たせない何かがある

ポジティブな側面では知的好奇心だし,

ネガティブ意味ではよくわかっていないコンピュータシステムの上でいろいろやっている負い目とか,

コンプレックスだったり,インプットが足りていないままアウトプットに偏った活動をしている劣等感とかだろうか

就活就活向けの思考に疲れ始めているせいで,そうゆうコンピュータクラフト系に癒しを求めている部分もあると思う

自分のこれまでの活動をうまく利用して,有利に就活を進められる場を提供してくれたサポーターズなどのサービスイベント

自分を高く評価してくれる企業には大いに感謝もしているが,

品定めするような目線を受け続けているとアンチ金儲け主義のような意識が芽生えてくる

会社が金儲けのために使う道具として自分がどれだけ優れているかばかりアピールしていると,そうではない側面が盛んに自己主張をはじめる

就職活動念頭にあるので,自分経験をわかりやす就活で有利になるパッケージにしよう,みたいな考えにいつのまにか陥ってしまっていた

年代経済的な豊かさを手に入れ,どんどん人生の次のステージに進んでいくのを見ていて,焦りもあった

パンだけじゃ 生きていけねえ,し,

せめて高収入だったり,他人にすごいと思われるような職について,自分を慰めてやりたかったのかもしれない

あと一ヶ月もしたら,これまでの活動内定承諾という形で一旦精算されそうなので,

残りの時間研究と,別に新しい何かを生み出さないかもしれないただ好奇心を満たすための活動に使いたいと思い始めた

(面接では,一日も早く御社活躍できるような人材になれるように勉学に励みます,みたいな顔をしているが)

別に社会人になっても,休日に自室で一人で自作CPU半田付けしていてもいいし,多分やってると思うんだけど,

終わりが見え始めたら,周りに興味をもってくれそうな人がたくさんいる今の環境は尊く得難いものであると気づいてきた

そんなことを考えながら,いろいろググっていたらCPU自作手芸に例えたとても秀逸な投稿を見かけた

自分コンピュータ裁縫編み物も好きなのでとても共感した

裁縫編み物商業的にはほとんど機械化していて,実用品を手に入れる目的なら買った方がはるかに早く安く性能もいいが,

まさに手を動かして作る楽しさを味わうために取り組む趣味的な活動として残り続けている

自作CPUとかは短期的には対外的評価を得にくい活動かもしれないが,それ自体純粋自分好奇心を満たし,

達成感や充足感を与えてくれるので精神的な意味では「すぐに自分生活をよくしてくれる活動」と言えるかもしれない

ロシア語では趣味のことを「魂のためにやっていること」と表現するそうだが,まさにそういう癒しを求めているんだろう

2024-01-19

anond:20240119142929

わいもいまだに「virtual methodを持っているクラスはデストラクタをvirtualにしないといけない」理由がググらずに説明できん。

というかこのくらいコンパイラが頑張れや。

2024-01-07

標準コマンドが信頼できないのにpythonやらrubyやらのインタプリタだのRustのコンパイラだのどこぞのヘボいエンジニアが書いたCのコードは信頼できるっていうの、謎

2024-01-06

二次関数で式立てたはいいけど因数分解できなくね?(´・ω・`)

因数分解が難しいときは解の公式使うといいよ、こういう式で……」

 

再帰処理で書いたはいいけどスタックオーバーフローするやん(´・ω・`)

「この言語には末尾再帰最適化っていうのがあって、コンパイラ勝手ループに変換してくれるよ。末尾再帰っていうのはこういう形式で……」

 

//

 

二次関数を習ったけど何に使えばいいのかわからない」

二乗に比例する成分があるときに使えばええやんけ……」

 

再帰関数を習ったけど何に使えばいいのかわからない」

再帰的な処理をしたいときに使えばええやんけ……」

2023-12-27

anond:20231227015354

Rustはコンパイラが補助輪をつけて転びにくくしてくれてるだけだからC++メモリまわりのバグ出さずに書ける人ならC++でいいぞ

2023-12-18

anond:20231218174622

いや30年前でもそんなところに引っ張られるコンパイラはそうそうなかったと思うぞ

単にLinusの好みだぞ

カーネルの中にガイドラインとチェックスクリプトが同梱されてるので実際守る必要がある

anond:20231218174329

あー、ブロックにするとスタック待避等があるから速度が若干落ちるのか。

でもコンパイラ最適化でなんとかならんのかね

2023-11-08

anond:20231108152323

テスト仕様書

if (AAA >= XXX) foo()

に対して

AAA が XXX 以上の場合は foo処理 を行う

と、コードと一対一に対応するようにテストケースを書くように指示するSEがいた。

こんなテストケースは、コンパイラバグってない限りバグなんて起きようがないんだけど、そういう指示だから言われた通りに作業していた。

テスト工程が終盤に差し掛かった時に、そのSEが急に「バグ率はn%程度でないといけないから」と言い出して、仕方なくバグ捏造したことがあったわ。

下流工程経験のないSEはだめだな。

2023-10-23

ますだくーーーんCICDをクラウドコンパイラみたいに使うのをやめろっていったよねーーー?

クソが^^^^^^^

CICDをクラウドコンパイラみたいに使うのをやめろ

やめろ。せめて自分ローカル環境でlintとbuild通せや。

2023-10-11

anond:20231011220206

コンパイラが吐き出したマシン語人間査読しないでしょ、それと同じよ

ちなみにAI乱数という概念を捨てられないので完璧コードそもそも不可能

2023-09-21

プログラマー箴言2 (AI生成)

1. コードプログラマー宇宙秘密のやり取り。でも、宇宙は時々 "42" って言っちゃったりすることもある。

2. プログラミングエラーを見つけ出す冒険。ただし、その冒険にはときどきドラゴンも混ざっていることがある。

3. 真のプログラマーは "Hello, World!" を書くことで宇宙秘密を解き明かすことができますそれから "Goodbye, World!" と言ってサヨナします。

4. プログラム人生コントロールセンター。ただし、"Ctrl+Z"(元に戻す)は人生には効かないことがあります

5. コードは時には詩よりもラグビー試合のよう。問題に突進し、バグタックルしまくります

6. プログラミングあなたが言うことではなく、コンパイラ理解することです。コンパイラが言うことを聞く賢明さが必要です。

7. コード魔法スペルブック。しかし、時々 "Abracadabra" を打っても期待通りのことが起こらないことがあります

8. デバッグ魔法水晶玉のよう。時には見通しがよくなく、ぼんやりしていますが、それでも未来予測しようとします。

9. コード時間カプセル。将来の自分に向けてメッセージを残すことができます。ただし、時々 "TODO: 未来自分、これを修正してください" というメモしかありません。

10. プログラム宇宙レゴセット。ただし、説明書がなく、最初からピースが1つ足りないことがよくあります

https://anond.hatelabo.jp/20230921151101

レイヤー技術セキュリティ❤️ソフトウェア研究開発という職業

セキュリティソフトウェア研究開発、という仕事自分経験をもとに紹介します。主な想定読者は、情報セキュリティ関連を仕事にしたいと考えている学生や若手、特に、いわゆる「低レイヤー技術」に惹かれている人です。

背景

低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書を読んで思い出したのですが、セキュリティキャンプなどで、セキュリティに興味のある学生とやり取りをしていて、ソフトウェアエンジニアリングの分野でセキュリティ関連のキャリア議論されることが少ないと感じました。自分セキュリティソフトウェア研究開発に10年以上携わっていることもあり、この職業は低レイヤー技術セキュリティに活かせる面白い選択肢だと思っているので、紹介してみることにしました。

どういう職業

セキュリティソフトウェア研究開発では、アンチウイルスEDRなど、文字通りセキュリティ機能提供するソフトウェア研究、開発します。

研究、開発」と書いたように、この職業には研究と開発の両面があります

研究は、実現可能性や価値が定かでないアイディア調査試験実装する、という仕事がその一部です。例えば、ファイルディスクに書き込まないマルウェアを検知したいが、どのような技術選択肢課題があるかを評価する。実現可能場合は、開発チームと協働して実装、出荷にこぎつける。あるいは、製品として実装された機能バイパスされないか調査したり、バイパスされてしまった場合にはその原因を究明したりして、製品改善するために開発チームと協働する、という場合もあります

開発は、研究との対比という意味においては、できると判っているアイディア保守性の高い状態で実現する作業だといえます保守性の重視は研究との大きな違いで、例えば、研究では、コメントテストものない書き殴りのコードで十分であっても、開発の工程では、5年後でも改修が必要になるため許容できなかったりします。製品という大きなコードの中での開発であるため、別のチームや利害関係者との連携も、研究場合よりずっと重要です。例えば、リードポジションであれば、研究工程で実現可能と分かったアイディアが、既存機能統合する形で実装されるべきか否かアーキテクトと議論したり、テスト計画品質保証のチームと練ったり、プロジェクトスケジュールを調整したりします。

研究は、既定の手法がなく、闇の中を手探りで進める面があり、最終的に製品レベルにこぎつけずに終わる場合も多いです。判りやすい成果が出ない場合があるので、好き嫌いが別れやすいです。自分は、職業としては研究3,開発7くらいのバランスが好きで、趣味では逆に研究8,開発2くらいになってます趣味では成果が出ようが出まいが過程が楽しければ満足、という個人的な考え方がこの違いとして出ているようです。

レイヤー技術価値

この職業のおいて、低レイヤー技術に明るいことは、ほかの多くのエンジニアができないことができるという付加価値、だと自分は考えています。例えば、特定分野の詳細を知っていることでその分野の研究、開発が効率よくできたり、新しいアイディアが生まれたりします。具体例をいくつか挙げると、OS仮想メモリ管理に親しみがあれば、プロセスメモリーを走査してメモリー上のみに存在するマルウェアを検出する機能をより効果的に設計実装できる。プロセッサー機能の詳細を知っていれば、CETという新しいプロセッサーしかないセキュリティ機能を、他のプロセッサー機能を使って疑似的に実現するというアイディアを思いつく。などです。脆弱性知識や探す技術も、とても価値があります脆弱性を知らない人と、知っている人では、どちらが脆弱性の少ない設計実装をできるでしょう。自社の製品脆弱性を、開発中に発見するのと、テスト・出荷後に発見、改修を加えるのではどちらのコストが少なくて済むでしょう。コンパイラーの知識は検出ロジックを書くための独自言語の開発に、エミュレーター実装経験マルウェア解析エンジンの開発に役立ちます

ただ、低レイヤー技術付加価値であることに注意してほしいです。

まず前提として、ほかの平均的なエンジニアができることに加えて低レイヤー技術があるべきです。セキュリティソフトウェア開発者の多くは、実はセキュリティや低レイヤーエキスパートではありません。優秀な開発者であることに加えてこれらを必要条件にしてしまうと、人が雇えなくなってしまうためです。そのため、一般的エンジニアリング能力に加えて低レイヤー技術セキュリティという強みがあると、大多数の開発者ができない(したがらない)ことを任せられる人、と差別化してもらえる可能性が高いです。一方、エンジニアリングに対する素養や意欲なしでは、セキュリティソフトウェア研究開発職は難しいです。その場合研究者のほうがあっています。(ちなみに自分は、脆弱性解析とマルウェア解析を専門とする研究職にも各2年ほど就いていました。)

やりたい仕事を得るためにできること

ここから一般論になりますが、OSに詳しくても、プロセッサーに詳しくても、バグハントが得意でも、それを会社が求める結果を出すために使えなくては意味がありません。会社は、あなたがやりたい仕事をくれません。会社は、会社必要としている仕事をもってくるだけです。

ではどうやって「会社必要とする仕事」と「あなたがやりたい仕事」の重複を最大化するか。

まずは、上司にどういう仕事をしたいかを明示的に、繰り返し話しておきますさらに、能動的に、自分からプロジェクトアイディア提案して意欲を示すことも心がけますあなた仕事を最終的に選ぶのは上司である以上、上司から理解必須です。良い上司(そして良い上司であることを可能する、良い上司上司)は、必ず、あなた能力に対する信頼度に応じて、あなた意向考慮してくれます。言い換えると、まずはやりたい仕事を主張する前に、与えられた仕事をこなして信頼を得る必要があります個人的経験では、これは1年あれば十分で、1年たっても状況に変化がない場合あなた仕事ぶりが上司の信頼を得るのに不十分か、あなたがやりたい仕事をうまく伝えられていないか上司やその上司あるいは会社問題があるか、あるいはこれらの組み合わせの可能性が高いです。

上記がうまくいかない場合、チームや会社を変えることを検討しましょう。チーム異動はリスクの少ない選択肢です。これも、実現するか否かは、上司からの信頼の程度に大きく依存します。会社を変えるのはリスクが大きいですが、上司やその上司を変えるよりも現実的です。新しい会社でもうまくいかなかったら、また新しい会社を探せばOKです。最終的にあった会社に行きつくか、自分能力コミュニケーション問題があることに気づくと思います

最後に、「会社必要とする仕事」と「あなたがやりたい仕事」の重複を追求しないことも視野にいれておきましょう。仕事あくまお金のためであって、やりたい仕事のほうが楽しい必要要件ではない。……という視点を持っておくと、些細なミスマッチで不満をためて、そこそこ良い環境から性急に転職してしまう、という状況を防ぎやすいです。隣の芝生は青い、ということを忘れないように。

まとめ

セキュリティソフトウェア研究開発は、セキュリティに深く関わりつつ低レイヤー技術付加価値として自分差別化できる面白い職業です。

ところで自分は7年務めた研究開発職を退職しました。おめでとう、ありがとう。これからは、また違う低レイヤー技術セキュリティ研究開発をしていきます

2023-09-11

anond:20230911120625

>ほんのちょっと前まで、人間以外がプログラムコード書くなんてできない世界だったじゃん。

いや高級言語コンパイラってまさに「人間の(比較自然言語に近い)指示によって機械自動プログラムコードを書く」機能だと思うけど

上流設計も何十年後か知らんがいつかAIで十分やれるようになる可能性を否定する人はそんなにいないと思う

逆にコンパイラだと詰め切れない部分を人がアセンブラで直接手直しするとかも、最近ではかなり少なくなったけど全くない話ではないので、技術者不要になるとも思わないけど

2023-08-26

anond:20230826113704

俺は主に8ビットや16ビットCPUを使ってワンボードマイコンを組み立てていろいろいじってる。

8ビットは6800や6502や6809。16ビットは68000とか68030とか。

もっぱらコンピュータの仕組みのお勉強のため。コンパイラとかOSとかも。

面倒な時は Arduino とか Raspberry Pi とかで済ませる。

anond:20230826120343

クソ面倒なハード向け低レベル言語と、品質重視の高レベル言語があれば良い、みたいな世界観やめてほしいわ。ハード意識しながらヒント書いてあげるから、あと全部コンパイラがよしなにやってくれる言語が欲しい。

2023-07-18

チャットGPT、正規表現とか文字列処理を考えさせたら便利かと思ったけど全然だった

なんど いっても 同じミスをする

プログラムコードとして書かせるからダメなんだと思う

コンパイラ持ってるわけじゃないから、実行結果がわかんない状態コードをお出ししてくる

実行して正しいかどうかまでチェックしてから出力する、というような気の利いた事はしてくれない

からこっちがダメといってもどこがダメかを考える材料がないから、どこを直せばいいかずっと判断できない

ちなみにどこがダメかはもちろん言ってやってる

それでもそれを理解して適切に修正することができない

トラバはむかつくからみてませーん

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