プログラミングと工作と

PythonとかPascalとかAVRマイコンとか、コンパイラつくったり電子工作なんかを楽しんでいるおっさんの記録

2015-05-01から1ヶ月間の記事一覧

バグバグしてるんですけど

気を取り直して、ローカル変数とグローバル変数について調べてみた。グローバル変数は、ローカルな関数内で「global」で宣言しなければならない、だって!?グローバルで一度宣言するPascalとかとは違うんだ!なんだよPython、めんどくさいじゃないか。まあ…

エラー・・・だと・・・

さて、前回つくったtoken関数と、next_char関数を合わせて、下のファイルを作ってみました。#!/usr/bin/python# coding: utf-8def error(): print('error')def next_char(): char = infile.read(1) if not char: #EOFなら(file.read()は、EOFを検出すると空…

トークンを取得する関数をつくる準備

さて、もう一度生成規則を再掲すると 1. SPEC_SYM → '=' | ';' | ':' | ',' | '.' | '+' | '-'2. NON_KEY_ID → ALPHA ALPHANUMS3. ALPHA → 'a' | 'b' | 'c' |・・・|'x' | 'y' | 'z' | '_' 'A' | 'B' | 'C' |・・・|'X' | 'Y' | 'Z' |4. NUM → '0' | '1' | '…

トークンってなに?

トークン?買った本によると「プログラムの基本的な字句単位」をトークンと呼ぶそうな。英語の文章で言えば、単語とかピリオドとか、意味を成す一つ一つの最小単位の事ですね。そのトークンの生成規則、文法っていうんでしょうか、文章で書くとIDはアルファ…

まずは、ソースファイルの読み込みから

さて、コンパイラを作るって何から始めよう? いろいろコンパイラの本を立ち読みしまくったんですが、理論よりのものが多く て頭が不自由気味の僕には良く理解できない。 神田の神保町まで足を伸ばして古本を漁っていたら、見つけました。 「コンパイラの設…

僕が好きになるものはメジャーにならない・・・

なぜなんだろう。 僕が好きになるものはメジャーにならない。 その昔、僕はPascalというプログラム言語が大好きだった。すごく綺麗に書けるし見やすいし、第一コンパイル速度はちょっパヤだった。 こんな良い処理系がdisられ、「あぁ、あれ教育用だろ(嘲笑…