
Git & GitHub 基礎マスタークラス – 失敗しても怖くない入門完全攻略
lunastev
¥6,307
入門 / Git, GitHub
Gitを「コマンド集」として学ぶと長続きしません。構造を理解すれば一生使えます。GitとGitHubを実践的な協業基準で整理した、構造中心の講義です。
入門
Git, GitHub


コンパイラ
言語設計
レクサーの実装
パーサーの開発
ASTの作成
コンパイラの製作
LLVM IR 生成
プログラミング言語の作成
システムプログラミングの基礎
コード生成器の開発
Rust 実習プロジェクト
言語は文法を決めるだけでは完成しません。
トークンを分割し、パーサーと抽象構文木を経てコンパイラで実行される流れを直接実装してこそ、コードが言語になります。
最初はレクサーがソースコードをトークンに分割する過程を追っていきます。数値や演算子、変数や出力文がどのように分解されるのかを実際に確認します。
次はパーサーと抽象構文木を作成し、コードの構造を構築します。Rustで簡単な言語を実装し、コンパイラと出力機能まで繋げます。
最後には、対象となるユーザーや文法、型システム、エラー処理方式を自ら決定します。他人が作った言語を使うことから一歩進んで、自分自身の設計をコードに移します。
コンパイラやパーサーの構造に馴染みがなくても大丈夫です。
小さなトークン一つから始めて、実際に実行される言語を完成させる経験が、皆さんの次なる挑戦になります。
ぼんやりとしたアイデアを実行可能な文法に変え、
自分だけの言語を作る開発者へと進みます。
プログラミング言語の全体的な流れをひと目で設計できるようになります。
ソースコードがレクサーでトークンに分割され、パーサーを経て抽象構文木が作成された後、実行コードに変換される過程を段階別に繋げて理解できるようになります。新しい言語の構造に出会ったとき、各構成要素の役割を自ら説明し、言語構造ダイアグラムとして整理することができます。
レクサーとパーサーの役割から、抽象構文木とインタプリタ・コンパイラの違いまで、その流れを繋げて理解します。Rustでトークンの定義、構文解析、変数と演算子を処理する構造を実装し、漠然としていた言語制作の過程を具体的なステップへと変えていきます。
文字列出力コードをトークンに分割し、数値と演算子を抽象構文木として構成した上で、コンパイラで実行されるようにします。自ら文法スタイルや型システム、エラー処理方式を定め、自分だけの簡単な言語コードの作成まで行います。
講義で扱うトークンの定義、レクサー、パーサー、抽象構文木(AST)、コンパイラ実装コードを基に、実習を進めることができます。言語の対象と哲学、文法、デバッグの方向性を整理するミッションを通じて、その後の機能を拡張するための設計基準も用意します。
Section 1
プログラミング言語の定義と構成要素を確認し、自ら言語を設計・実装する理由と学習の方向性を理解します。
Section 2
レクサー、パーサー、抽象構文木の役割を学び、インタプリタとコンパイラの間の違いを比較します。ソースコードが実行ファイルや実行結果に変換される全体の処理フローを段階別に把握します。
Section 3
Rustの開発環境を構築した後、トークンの定義とレクサー、数値・演算子・変数を処理するためのパーサーと抽象構文木を実装します。その後、コンパイラと出力機能を完成させ、簡単なプログラミング言語の実行過程を実習します。
セクション 4
ターゲットユーザーと言語の哲学に基づき、文法スタイル、型システムの導入有無、エラー処理とデバッグ方式を設計します。主要な設計上の選択を整理し、一貫性のある言語仕様を構想します。
Section 5
これまで学習した言語設計と実装の原則に基づき、自分だけの簡単な言語コードを作成します。言語の文法と核心的な動作を直接定義し、制作過程を体験します。
Section 6
プログラミング言語を自ら作ろうとする動機と、創作の意味を振り返ります。言語設計が思考回路や問題解決の手法に与える影響について考えてみます。
数字と演算子を処理する小さなプログラムは作ったことがあるが、ソースコードがトークンと構文木を経て実行される過程がまだ馴染みのない方
Rustの基礎文法を活用してレクサー、パーサー、抽象構文木を直接実装し、コンパイラの全体的な流れを体で覚えたい方
RustとC言語でメモリとデータ構造を扱ったことはあるが、自作の文法を実行可能なコードに変換するプロジェクトが不足していた方
変数、演算子、出力文を処理する簡単な言語を設計し、コンパイラとコード生成プロセスを実装しながらシステムプログラミングの能力を拡張したい方
パーサーとコンパイラの構造を学んだことはあるが、言語の文法や型システム、エラー処理方式を自身の基準で設計してみた経験が不足している方
言語の対象ユーザーと哲学を決めた後、文法を具体化し、自分だけの簡単な言語コードを作成しながら言語制作プロジェクトの出発点を作りたい方
実習環境
Windows、macOS、Linuxをサポートしています。
Rustの開発ツールをインストールして使用します。
テキストエディタとターミナルが必要です。
メモリは8GB以上を推奨します。
前提知識および注意事項
RustまたはC言語の基礎が必要です。
変数、関数、データ型を理解している必要があります。
レクサー、パーサー、抽象構文木を扱います。
コード作成の経験があれば実習に有利です。
学習資料
講義スライドのPDFを提供します。
文法設計とコンパイラ構造を復習します。
トークン、パーサー、コンパイラの実習資料を活用します。
簡単な言語の制作工程全体を辿ります。
学習対象は
誰でしょう?
プログラミング言語を作りたい人
Rust、Cで基礎は身につけたけれど、挑戦課題が必要な人
パーサー、レクサー、コンパイラの構造に関心がある人
前提知識、
必要でしょうか?
Rust
基礎レベルのプログラミング経験
全体
22件
講座資料(こうぎしりょう):
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!
新規会員登録で25%OFF
¥18,787
25%
¥25,047