システムソフトウェア特論2019

Handsout

#1 プログラミング言語とは #1 What programming languages are? r01.pdf ohp01.pdf cd01
#2 BNFによる文法の記述 #2 Grammer specification with BNF r02.pdf ohp02.pdf cd02
#3 言語処理系の構成 #3 Structures of language processors r03.pdf ohp03.pdf cd03
#4 形式言語 #4 Formal languages r04.pdf ohp04.pdf cd04
#5 字句解析 #5 Lexcal analysis r05.pdf ohp05.pdf cd05
#6 構文解析(1) #6 Syntax analysis (1) r06.pdf ohp06.pdf cd06
#7 構文解析(2) #7 Syntax analysis (2) r07.pdf ohp07.pdf cd07
#8 構文解析(3) #8 Syntax analysis (3) r08.pdf ohp08.pdf cd08
#9 コンパイラコンパイラ
#10 (同つづき)
#9 Compiler-Compilers
#10 (continued)
r09.pdf
r09b.pdf
ohp09.pdf
ohp09b.pdf
cd09
cd09b
#11 意味解析と記号表 #11 Semantic analysis and symbol tables r10.pdf ohp10.pdf cd10
#12 実行時環境とコード生成
#13 (同つづき)
#12 Runtime environment and code generation
#13 (continued)
r11.pdf ohp11.pdf cd11
#14 コード解析と最適化 #14 Code analysis and Optimization r12.pdf ohp12.pdf cd12
#15 オブジェクト指向言語の実装 #15 Implementing Object-Oriented Languages r13.pdf ohp13.pdf cd13

Report Acceptance

1931125 1 2 3
1831013 1 2
1931026 1 2
1931010 1 2 3
1931098 1
1931150 1
late

report site

Companion Sites

冊子体

Java SE 8 API (日本語版)

「言語プロセッサ」

Syllabus

システムソフトウェア特論2019
Advanced Topics on System Software (IE)
Foundations of Software Systems I (IS)

講義の狙い、目標

プログラミング言語処理系およびそれに関連のあるシステムソフトウェ
アについて、実例を中心に学ぶ。Java言語を用いて実際にさまざまな実
装を構築し、具体的な概念を身に付ける。

This lecture investigate systems software related with
programming language processors with example-based scheme.
We mainly use Java language to implement various systems
software and pursue related principles and concepts.

内容と進め方

毎回例題を配布し実際にそれを動かし、また改良してみることで
各回の概念を理解する。

Example programs are presented on each hour.  Students are
expected to run, modify and improve thos programs so that they
can graps and further understand the topics.

#1 プログラミング言語とは
#1 What programming languages are?
#2 BNFによる文法の記述
#2 Grammer specification with BNF
#3 言語処理系の構成
#3 Structures of language processors
#4 字句解析
#4 Lexcal analysis
#5 形式言語
#5 Formal languages
#6 構文解析(1)
#6 Syntax analysis (1)
#7 構文解析(2)
#7 Syntax analysis (2)
#8 構文解析(3)
#8 Syntax analysis (3)
#9 抽象構文木
#9 Abstract syntax trees
#10 意味解析と記号表
#10 Semantic analysis and symbol tables
#11 コード生成と最適化
#11 Code generation and optimizations
#12 並列性
#12 Parallelism
#13 分散性
#13 Distribution
#14 変わった言語機構
#14 Topics on language mechanisms
#15 総合課題
#15 General assignment


授業時間外の学習

授業時に提示した課題から複数選択してレポートとして提出
いただくので、そのための作業をお願いします。

Students are expected to write several reports based on
practices in the class, so they are expected to do those
practices out of the class.

成績評価方法

成績評価は授業時の課題提出とレポートの内容に基づきます。

Evaluation will be based on results of pratices in the class and
submitted reports.

学生へのメッセージ

プログラミング言語処理系は多様な技術を内包しており、さまざまなア
ルゴリズムや考え方を学ぶことができ、楽しい分野だと思います。学生
さんのレベルに基づいて楽しんで頂けるよう考えます。

Implementation of language processors contains varous ideas and
algorithms, so it is an enjoyable topic.  The lecturer will
adjust contens of the class acccording to the backgrounds of the
attendands.

その他

nothing.

キーワード

programming languages, grammers, parsing algorithm,
formal languages, parser generators, abstract syntax trees,
optimizaiton, concurrncy, distribution.