コンパイラの技術と関数電卓プログラム(1-2)
前回の実験資料では、再帰下降パーサについて説明し、サンプルプログラムを示した。 演算子の左結合・右結合 ここで、プログラムの実際の動きについて考えてみる。前回の乗除式の BNF 記法による定義は以下のようであった。 ex […]
コンパイラの技術と関数電卓プログラム(1)
コンパイラを作るための技術の基礎を学んでもらうために、 簡単な関数電卓プログラム作成を課題とする。 基本は、printf( “%d” , eval( “1+2*3”) ) […]
CTF問題とセキュリティ(4年実験)
この実験では、セキュリティコンテストのCTF問題(Capture The Flag競技)について、インターネットの仕組みを理解し、その問題の解き方を考え、新しく自分自身でCTF問題を作ってもらいます。 CTF競技の問題の […]
PHPとセキュリティのレポート講評
5年生の前期実験で「PHPとセキュリティ」のテーマについて、レポートの採点を行った。 以下に、レポート記載での注意点や減点評価を行なったポイントをあげる。 レポートの記載書式について 電子レポート提出でも所属や報告者の記 […]
const char*s, char* const sの違い
専攻科実験のサンプルコードで、警告がでたことについて質問があったので説明。 (( サンプルコード sample.cxx )) #include <stdio.h> void foo( char* s ) { […]
Visual Studio Code で印刷
実験や授業課題のレポート提出で、プログラムを印刷したものを提出してくれるけど、行を移動しながら何度もスクリーンキャプチャで保存した画像ファイルをWordに貼り付けて提出している人が多い。 いままでなら、「秀丸エディタで印 […]
コンパイラの技術と関数電卓プログラム(2)
前半では、1文字の数字と簡単な演算子で表現される計算式を再帰下降パーサで計算する処理で、 演習を行った。 後半は、さらに実際のコンパイラに近いものとして、 C言語で広く使われている、字句解析ツール(lexical ana […]
再帰下降パーサのサンプルコード
再帰下降パーサ・サンプル 授業でもやっていない再帰下読みの説明でもあり、 簡単なサンプルコードを示したいけど、Webで探しても全体的に大きなプログラムばかりで、 再帰関数をどう記述していくか解かりにくい。 ということで、 […]
コンパイラの技術と関数電卓プログラム(1)
コンパイラを作るための技術の基礎を学んでもらうために、 簡単な関数電卓プログラム作成を課題とする。 基本は、printf( “%d” , eval( “1+2*3”) ) […]
専攻科実験・コンパイラと関数電卓プログラム作成
コンパイラの技術と関数電卓プログラム(1) 課題 複数桁の数字が使えること。 式中に空白が使えること。 何らかの演算子を追加すること。 (例) %,単項演算子のマイナスなど 演算子が左結合か右結合か確認すること。 オプシ […]