私はソフトウェアエンジニアリングの学位を取得して3年目の学部生です。今年から、私の大学は「コンパイラー構築」と呼ばれる新しいコースを導入しました。これは、コンパイラーを構築する理論の基礎を教えます。
ソフトウェアエンジニアがコンパイラの構築について学ぶ上で、実際にどのような利点がありますか?
私はソフトウェアエンジニアリングの学位を取得して3年目の学部生です。今年から、私の大学は「コンパイラー構築」と呼ばれる新しいコースを導入しました。これは、コンパイラーを構築する理論の基礎を教えます。
ソフトウェアエンジニアがコンパイラの構築について学ぶ上で、実際にどのような利点がありますか?
回答:
コンパイラの構造を学ぶことには、実際的な側面があります。アプリ固有のコマンド言語を実装するためにパーサーを構築しなければならない場合がいくつかあります。アプリへの柔軟でスクリプト可能なインターフェイスを作成することができました。
また、なぜ一部の言語がそのように設計されているのか、そしてどの言語が完璧でないのかについて、より深い洞察を提供します。
カリキュラムの中で最も厳しいコースの1つである、厳しいコースです。私は夏のセッション中にそれを取り間違えました。夏のセッションでコンパイラコースを受講しないでください。脳が爆発します。
ああ、いいですね。それを後悔しないようにしてください。
プログラミング言語の魔法、それらの比較特性、高水準コードの実行形式への変換についての洞察を得ます。あなたは多くの言語機能をより良く理解し、何が可能で、どのようにそれらがどのように行われるかについてより広い視野を持つでしょう。あなたはそれをすべて異なる目で見るでしょう。
CSの基本的なことを学ぶために大学で過ごすのは賢明です。具体的なプログラミング言語、ツール、ライブラリはすべて行き来していますが、基盤は残っています。
また、コースが生き残った場合(深刻な場合)、プログラミングに適した頭脳を持つことを祝福するかもしれません。この理論を使って実際的なプロジェクトを完了し、履歴書にそれを記載してください。そうすれば、優れた雇用主の関心を非常に高めることができます。
間違いなく!
たとえば、データベースクラスのように日常的に使用するトピックではない場合があります。コンパイラを理解することで、優れた基盤が得られます。
同様の例は、オペレーティングシステムクラスです。あなたはプログラマーであり、毎日OSがどのように機能するかを考えていないかもしれませんが、その基礎を持っていると、長期的にはあなたを助けるでしょう。
はい!このコースでは、プログラミング言語、データ型、関数の解析と、それを特定のCPUのマシンコードに変換する方法について、より深く理解できます。
これだけでは、日常的にはあまり実用的ではないかもしれませんが、実際にどのように機能するかを知っているという自信が得られます。これは、低レベルの最適化を行い、他の誰もが困惑している本当に厄介なバグを見つける必要がある場合に非常に役立ちます(ここでの経験と言えば)。
今日、ドメイン固有言語について多くの話題があります。そして、彼らは本当にすべての話題の価値があり、その真の可能性はまだ探求されていません。そのため、コンパイラの構築スキルは重要なだけでなく、将来不可欠になるでしょう。現在の問題がコンパイラーに直接関連していない場合でも、開発時間の約60%をeDSLコンパイラーの実装に費やしています。