Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Racc でおてがる構文解析 まき
自己紹介 よしおかまき
id:morphine57(もるひねと読みます)
プログラミング歴10年 初めてのプログラミングはCOBOLでした Ruby歴、気付けば5年 でもまだよく分かってない(汗
本日の概要 構文解析とは コンパイラのしごと
字句解析
構文解析 Raccって? Raccの基本的な使い方
構文ルール書き方
デモ 質問
構文解析とは 文字の羅列であるソースコードを機械が解釈できる形にすること
コンパイラの仕事の一部
コンパイラのしごと 広義の構文解析   & 今日の範囲 ソースコードをコンピュータやVMが実行できる命令語に変換すること 字句解析 構文解析 意味解析 コード生成
字句解析 ソースコードの文字列をトークンと呼ばれる単位に分割する
トークンは意味値を持つ 識別子、整数、文字列
予約語やカッコに意味値はない hoge=(hoge+1)/2 = ( ) + hoge / 2 - - - - 識別子 - 整数 1 整数 ひとつの トークン 下段が意味値 hoge 識別子
構文解析(狭義)(1) トークン列を解析して抽象構文木に変換する
構文解析(狭義)(2) 1 + hoge ÷ 2 右式 左式 演算式 演算子 演算子 右式 左式 = ( ) + hoge / 2 - - - - 識別子 - 整数 1 整数 hoge 識別子 演算式 代入式 右式 hoge 終端子 非終端子 (ノード)
ここまでまとめ 字句解析 構文解析 ((huge+1)÷2)×3 ( ( ) 1 + huge ÷ 2 3 × ) 右式 演算式 演算子 左式 代入式 右式 hoge

More Related Content

Racc でおてがる構文解析