ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
第14回:表計算の発展的話題 2015 年 7 月 21 日 清見礼.  本日の授業の資料は今日中に 7/jc2015.html においておく。  どうしてもうまくダウンロードできない、見るこ とができない、などあれば.
(Rubyistのための) 超音速:ML入門
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
京都大学情報学研究科 通信情報システム専攻 湯淺研究室 M2 平石 拓
コンパイラ 2011年10月17日
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
コンピュータリテラシー 第3回授業の復習 基本的なUNIXコマンド
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
ISD実習E 2009年7月13日 LISPシステム入門 (第6回) 関数の定義 eval load 関数.
第2章 数値の入力と変数 scanfと変数をやります.
数値計算及び実習 第3回 プログラミングの基礎(1).
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
基礎プログラミング 第13回(2007年5月28日) 「関数」の補足説明 Report-Fの解説.
Bottle/Pythonによる Webアプリ入門
第8回 プログラミングⅡ 第8回
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
コンパイラ 2012年10月15日
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
初年次セミナー 第2回 文字の出力.
第20章 Flyweight ~同じものを共有して無駄をなくす~
ピカチュウによる オブジェクト指向入門 (新版)
スクリプト言語を用いたPHITSの連続実行
データベース設計 第9回 Webインタフェースの作成(1)
経営工学基礎演習a PowerPointの利用.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
第10章 char 文字列; 文字列を入力させるよ!.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
後期中間試験練習問題 12月3日(月)9:00~ 第3演習室.
京都大学情報学研究科 通信情報システム専攻 湯淺研究室 D1 平石 拓 2005/10/18
10.構造体とグラフィックス.
プログラミング入門2 第8回 ポインタ 情報工学科 篠埜 功.
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
デジタル画像とC言語.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング基礎B 文字列の扱い.
4.リスト,シンボル,文字列.
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
15.cons と種々のデータ構造.
プログラミング基礎a 第6回 C言語によるプログラミング入門 配列と文字列(その2)
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング入門2 第9回 ポインタ 情報工学科 篠埜 功.
プログラミング 3 2 次元配列.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
C#プログラミング実習 第3回.
プログラミング入門 電卓を作ろう・パートI!!.
Global standard programming with GNU Autotools
ネットワーク・プログラミング Cプログラミングの基礎.
第5回 プログラミングⅡ 第5回
2008/7/16(情報コース)2008/7/22(通信コース) 住井
Make の使い方.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
情報処理Ⅱ 2007年12月3日(月) その1.
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
コンパイラ 2012年10月11日
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
プログラミング 4 文字列.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
第2章 数値の入力と変数 scanfと変数をやります.
C言語講座第5回 2017 構造体.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題 LISPシステム入門 (第3回) read関数 read-macro back-quote 文字列のread 課題

read関数 V0.3 read関数なし V0.4 symbol, 数のみのread関数 V0.5 リスト構造のread V0.6 ' (quote ) #t,#f read_tで、文字がアルファベット、数字、 マクロ文字 (,) “, . , # のどれかを定義する。 マクロ文字の場合は、その処理のための関数を呼ぶ。 リスト構造を読むために、関数list-readが file_readを再帰的に呼び出すことに注意。

quote read-macro a_quoteはmain.cで定義 symbol.cのmake_symbolをcall ptr quote_read(FILE *in){ ptr p,s; p=file_read(in); s=cons(p,NIL); return cons(a_quote,s); } a_quoteはmain.cで定義 symbol.cのmake_symbolをcall lisp.hにも記述がある。

back-quote macro `s をreadすると (back-quote s) を返すようにする。 たとえば `(a b) は (back-quote (a b)) である。

back-quoteを作る a_back_quote をlisp.hに追加 main.c を修正 read.c にback_quote_readを作る。 make ./es により確認

文字列 “abc” をreadすると,文字列データを返すように する。 symbol.c を cp symbol.c string.c とコピーして、それを編集して make_stringを作ろう。(lisp.hも見る)

Makefile.am string.cをシステムに追加するため Makefile.am を修正する。その後以下を実行 autoconf automake -a ./configure make ./es

文字列のプリント print.c を変更して文字列のプリントができるように 変更する。ただし、文字列は” で囲んで画面に表示 する。 STRINGP はlisp.hで定義されている。 print.cの中に print_string(ptr x) を作り、関数 ptr print (ptr x) の条件分岐を追加する。

make_stringのcheck ここまでできたら、main関数から make_string と、それをprintする命令を書いて により実行してみる。

文字列をread read.c において、文字列 の先頭 ”がマクロであることは、定義されているが その関数は定義されていない。 これを修正して、 string_read を作って呼び出すようにしなさい。 ただし、簡単のために、次に”が現れるまでを 文字列とする。また、文字列の大きさは128byte 以下として良い。

課題 セミコロン ; 以下を注釈とするようにしなさい。 つまり、; をマクロ文字として セミコロン ; 以下を注釈とするようにしなさい。 つまり、; をマクロ文字として それが現れたら、行末までをすべて無視するように、 read.c を変更しなさい。マクロ関数の名前は、 read_comment とします。 たとえば “abc;def” ;this is string と入力すると文字列 “abc;def”は読み込まれるが ;this is string は無視される。 期限: 6月12日5時まで、作成したread.cをプリントして レポートにする。