独自言語 picle のコンパイラ化(その8) [PIC]
picle言語コンパイラに 前回 は外部処理宣言機能を追加しましたが、今回は下記の機能を追加しました。
引き続き最適化よりも使い易さの向上を主眼とした機能追加になります。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
引き続き最適化よりも使い易さの向上を主眼とした機能追加になります。
- プロトタイプ宣言
関数相互がコールしあう必要がある場合が発生することがあるので(本コンパイラでも該当箇所有り)、関数/処理のプロトタイプ宣言することで前方参照を可能にした。
コンパイラのサイズとコンパイル時間を気にしなければプロトタイプ宣言無しで前方参照可能にできるが、全体バランスを考慮し、プロトタイプ宣言方式を採用した。
例 func hoge( arg0, arg1 );
- break制御対応
ループ内での continue 制御はなくても良いかなぁと思うが、break は無いとソースが冗長になってしまう(=見辛くなる)ことがあるので対応した。
2段階以上の break も割合容易に実装可能だが、break 文は一種のgoto文もどきだと思うのでソースの可読性という観点から1段 break のみの対応とした。
- その他
コンパイル時に使用する変数名保存用配列を削除し、グローバル変数用配列の領域をコンパイル時に変数名用に使うようにした。コンパイラが使用するデータ領域が削減できたが、その分スタック領域を拡大した。
また、スタック上限値を SPLIM レジスタに設定し、スタックオーバー時に picle のソースを破壊しないようにした。
- ダウンロード
今回の変更版は下記リンクの記事からダウンロードできます。
「独自言語 picle compiler on PIC24FJ」
[TOP] [ 前へ ] 連載記事 [ 次へ ]
コメント 0