1  感想

これまでの課題でさすがに一番重く、一番きついものだった。 四則演算プログラムはすぐにできた。その他にかなり要した。でも複素数のプログラ ム辺りは、以前の課題とャbチする部分もあり、それを参照したりしたので、その辺 は楽だった。今回初めて書くところが重かった。いろいろ機能を貼り付けないといけ なくて、「あれも、これも」と考えなければならないのが嫌になってきた。でも中途 半端で提出するのもどこか癪に障るので、絵とかさすがにできていないものの、要求 されたことがそれなりに満たされるまでは書いた。四則演算、複素演算、実行列演 算、複素行列演算、行列の固有値、固有ベクトル問題、三角関数や対数、for文、 while文といったものが定義してある。とりわけ行列の演算はほぼ何でもできるよう になっていると思う。行列は自分なりに力を入れて書いた部分である。絵とかどう やって実現したらいいのか、ちょっと手法が考え付かなかったので、そこだけはノー タッチである。当初、提出期限が7月31日までということで、それに合わせて書い ていたのであるが、先生の恩赦?により期限が延びたものの、僕はちょっと個人的な 都合で、もうこれ以上課題をやっていられなくなったので(伸ばしてもらったのにそ の恩恵をこうむることなく)、もう少し考えてみたい部分はあったのですが、これで 提出ということにさせて頂きます。 数値計算の課題は数が多かっただけでなく、その質も毎回高く、非常に苦しいもの だった。4月頃は俣魔ノ先行き不安であったが、でも何とかかんとかやってこれたと 思う。振り返ってみればあっという間だった気がする。この数値計算に限らず、何時 の間にか僕も3年でもう学生生活もそうは長くなくなってしまった。残り充実させる ように勉学共々励んでいきたいと思った。

2  考察と感想

今回は先生のページに紹介されているホームページを参考にしてやっていったが、いままでのプログラムよりとても長く、骨が折れた。説明がわかりやすかったので、楽しくできたがわからないところもあったので、もう少し勉強したいと思う。

3  考察と感想

長いプログラムになった。ホームページを見ながらやりながら少しづつ進 めていきました。内容が難しかったので少し理解できてない部分がありま した。自分の都合で5日以 は日魔ノいないため早めに出す事になりまし た。もう少し時間に余裕をもってできたらよかったです。課題提出がいつ も遅れて、期限が守れてなかったので今回はその点では最低限のことはで きたと思います。あと家のパソコンのバグのため拡張子等の問題でしょう かファイルの保存がおかしくなり、メールに直接コピーする形となってし まいました。そのため、容量の関係上、2通に分けることになってしまい ました。すみません。

4  感想

行列の機能の追加もやりたかったが、難しすぎて出来なかったです。ただ、こういった アプリケーション的な感じのものに、さまざまな機能を拡張させていく楽しさは 少しだけわかった気がします(これは行列積の課題などにもいえた)。これで 思いどうりのことができると相当楽しくなるんだと思います。端末室や締め切りの 関係上あきらめましたが、行列の機能も暇を見てまたtryしてみたいと思います。
他の課題と平行していてかなりきついことが多かったけど、とりあえず一段落して(無事に 終わってと書こうとしたけど、まだ無事に終わってないんで・・・)よかったです。これから 長期休暇を楽しみたいと思います。半年間ありがとうございました。来年も講義があるようなので、 そのときはまたよろしくお願いします。

5  感想

この課題が終わったらやっと夏休みに入れます。でも、なかなか難しくて 授業のホームページを参考にしながら作りました。大変でしたが、前期中 で一番の大作になったかなと思います。
前期の後半は、暑い中、授業お疲れさまでした。

6  感想

プログラ ング言語論で字句解析や構文解析の考え方を学んで いたのでflexやbisonについてはかなり理解しやすかった。た だ個々を理解できても同時に使うのに少々苦労した。俣魔ヘif 文やfor文にも手を出してみたかったが時間が足りなく、断念 した。これでやっと夏休み気分に浸れるかと思うとうれしい。 (実は夏休みの方が忙しいという説もあるが)。 半年間ありがとうございました。

学校のUnixでは前橋さんの電卓がコンパイルできなかったので、最初のほうは何していいかもわかりませんでした。というのは学校のUnixではコンパイラの警告をなるべく多く出すオプション"-Wall"がillegal option というエラーが出てしまいそれから先に進めませんでした。それでWindowsでも使えるUnixである"cygwin"をインストールすると、makeできるようになり、前橋さんの電卓が使えるようになりました。これをするのに時間がかかりました。  実行の仕方についてはプログラ ング言語論でBNFやコンパイラについて勉強していたので、構文定義を調べてなんとなく予測がつき、実行できました。しかし前橋さんの電卓では、for式についての構文定義    for式:= 'for' '('式 ';' 式 ';' 式 ')' '' 式リスト '' など、何もなかったので、使えるようにと拡張しようとしましたが、エラーの連続で、結局できませんでした。  bisonの例の多機能電卓を拡張して複素数を計算できるようにしようとしましたが、これも結局できなかったのは悔しかったです。  始めに前橋さんのがコンパイルできずに進まなかったため、そして拡張しようにもエラーばっかりで進むことなく時間が過ぎ、結局時間がなく、提出することとなりました。

7  感想

もっといろいろとやってみようと思いましたが,難しくてここで終わりにしてしまいました.

8  感想

今回の課題は正直言うと納得いかなかった。講義名が「数値計算」であるのになぜインタプリタを作らなければならないのか。また予備知識を講義で聴いてないことも引っかかった。しかしながら課題を少しずつこなしていると、自動構文解析器の生産性の高さが面白く感じられるようになった。Cの理解も深まったし、終わってみればなかなか有意義な課題だったのではないだろうか。
拡張はほとんど出来ないまま終わってしまったが、13〜15日田舎に帰省しなければならないので、とりあえず出来たところまでを提出する。行列の定義なども少しはアイディアがあるので試してみたかったが時間がなくなってしまったので諦める。

9  感想・考察

今回の課題は、flex/bisonなど知らなかった事が多くて、どうやってやればいいか 全然分かりませんでした。取りあえず、webに載っている「電卓」についての解説を する事にしましたが、ソースが長く解読するのに苦労しました。

10  感想

今回の宿題は非常に大変でした。 この課題に費やした時間は計り知れません。 今後はこのような大変な宿題を出して しくないものです。

今回のプログラムはまだ個人的には満足はしていません。 なぜなら、 bisonの定義でまだコンフリクトがたくさん発生しているからです。 時間があったらここらへんの修正をしたいと思っています。 また、当初の計画では、GUIベースのアプリケーションにしたかったのですが、 大変そうだったので今回はCUIで我慢しておくことにしました。 また心配なのは、メモリ管理のあたりです。ガーベッジコレクションが 思い通りに動いているか謎です。

11  感想

今回の課題は期限は長くあったもののほかの課題や試験があったため試験が終わってからしか取り組むことが出来ず結局は 十分な時間がもてなかった。また,自分事ではあるが親が海外に住んでおり,休みはそこへ行くことになっていたので課題を 持っていくことになり,コンピュータも必要なソフトをすべて持っていってインストールするところからはじめたので結構大 変だった。また,大学のサーバーがダウンしていたため大学につなぐことが出来ず,ほかの機能もこちらに持ってくる 必要があったので,これがきちんと利用できるようになることにも時間を取られてしまった。実際にはホームページ上の電卓 の作り方からのソースファイルを利用するものしか出来なかったが,せっかく学習したことなので自分で一から作ってみたい と思っています。よって、課題期限には間に合いませんが、自分でやってみようと思っています。半年間お世話になりました。

12  感想

テスト勉強などで忙しかったこともあり、テストが終わって8月になってから課題を始めたのだが、時間のなさに絶望した。しかも取り掛かり始めてからも、cygwinのダウンロードが大変だという友人の助言から、Windows用のflexとbisonをインストールして課題に取り組むことにしたのだが、意味不明なエラーが出たり、makeが使えなかったりで、3日ぐらい試行錯誤した後にcygwinをダウンロードすることになったりと、なかなか進まなかった。しかもほとんど初めて触れるような内容だったこともあり、とにかく最初の方から理解に時間がかかった。与えられたプログラムが正常に動くまでにかなりの時間がたっていたのを覚えている。

とりあえず、期限も近いのでここまででいったん提出するが、行列を扱うようにする方法なども試行錯誤している最中なので、期限に間に合って完成したら追加で提出する気ではいる。

12.1  感想

今回の課題は、字句解析、構文解析等をやるのが、プログラ ング言語論の授業で似たようなことをやっていたので、すんなり理解できるかと思ったのだが、字句解析、構文解析にツールを使うなど、知らないことが多くて面白かった。数値計算の授業のレポート全体を通して、色々と学べたし、数値計算以上に、cygwinや、LAPACK,bison, yacc等、色々なツールについて知れる機会があって大変ためになった。cygwinを入れる過程において、windowsの設定についても学べたし、色々と副産物があってよかった。

13  感想

今回の課題は、見た目はすごくヘビーな感じがしたが、やってみるといろいろ理解してきたので最終的には良い気分で終われた。しかし、やった事を書いてみて、この量のレポートは、きつかったんだなぁ、と思わざるを得なかった。ひとつグチをこぼしたいのは、夏休みにやりたかった事を、少しばかり遠慮しなければいけなくなったのが気が重いという事だ。しかし、これからやっと自分の時間が持てる。先生も、レポートの確認頑張ってください。大変見にくい文面になっている事も多いと思いますが、その点は申し訳無く思っています。

14  感想と考察

今回、大学のUNIXシステムが使えなかったため、 家で環境を整えることから始まった。 GUN-Win32を使うことによって、Windows上でUNIX 環境を実現し、gcc,flex,bisonなどの開発ツール を使えるようにした。 また、GUN-Win32にはUNIXのEmacsのようなエデ ィタがないので、Mule for Win32をインソール した。

今回のレポートではテストや夏休みと重なり、 思うような機能の拡張ができなかった。他にも、 行列の大きさを与えるとランダムな要素をもつ行 列を生成する機能や、Gaussの消去、LU 分解のアルゴリズムを利用して連立一次方程式を 解く機能などの拡張が考えられる。 lex,bisonの使い方もまだわかりきれていないので 、その辺りの理解も深めるとともに、不足してい る機能の拡張を行ってみたい。

15  最後に

最後にプログラムのこととは違うことですが、 授業でMakefileを利用したmakeについて触れなかったために、 前橋和弥氏の電卓をコンパイルするときに、 makeを使用したプログラムを学んだことのない 友人の多くからbisonやflexで必要な処理をした後に gccやccコャ塔hを単に打ってコンパイルしようとして 動作しないという質問を多く受けました。 またそれ以外にもどちらかというと、LINUXやUNIXよりの質問を受けました。 僕もLINUXやUNIXはそんなに触れたことがなく、 またwindows上でもnmakeを利用したことなど一度もなく、 知識としてたまたま知っていたからわかったものの、 知らなかったらどうにもならないことだと思います。 僕としてはそんなの自分で覚えろといいたいところですが、 大学でのLINUX上でのCプログラ ングの説明ではgcc ファイル名 のコンパイルの仕方でしか習っていないため、 それがすべてで知識が欠けていることさえ知らない人が多くいることに 気付きました。 欠けていることさえ知らなければ自分で覚えることなどできないわけで もう少し言語そのものやアルゴリズムの説明ばかりでなくツールの使い方について の説明も詳しく行って しい。

前橋氏のページをよく見ればプログラムソースの下にmakeしろと 書いてあるのですが、気付かない人もいるようです。

また、前橋氏のページのソースは リンク切れのためtarで固めてあるものしかDLできないようで、 tarの使い方を知らない人もいて、ファイルが解凍できないとの 質問も受けたりとレポート期限が近づいてきた瞬間に質問攻めでした。

ということもあり、今回はいろいろな意味で有意義なレポートであったように 思います。 また、最近になって 友人と一緒になんか面白いソフトを作り出そうとしているので、 今までの内容が役立てることができそうです。

16  感想・考察

今回の課題では、構文解析が上手く行うことが出来れば後はBLASなり自分で作った関数なりを利用していくらでも機能拡張することが出来ると思いました。前期では、筧教授のプログラ ング言語論の課題で構文解析自体は結構勉強していたので、今回のプログラムも結構理解が早く進みました。もう少し時間があればこのプログラムにsinやcos、行列演算なども付け加えることが出来るなと思いました。前記は熱い中授業お疲れさまでした。

17  考察・感想

このプログラムには、特にcreate.c, eval.cに対する詳細なドキュメントが付属していないため、読みこなすのがとても大変だった。また、インデントにも無頓着で読みにくい。今回の課題に複素数の計算を追加することを考え、実際にプログラムまで組んだのだが、デバッグができずに断念してしまった。

flex,bisonに対する知識もなかったため、WEB資料を読むだけでもかなりの時間がかかった。この(M+)までの課題を行うにしても、一日でできる人はどれくらいいるのだろう?

flex,bisonは自分で趣味のプログラムをする際にもいろいろと使えそうなので、今回これについて学ぶことができたのは有益だった。いずれいろいろと試してみたいと思う。

18  感想

ほとんど、配布の資料によるものでしたが、いい勉強になりました。

19  考察と感想

今回の課題では難しくて自分ひとりの力ではできなかったので友人の力を借りてやりました。ホームーページにのっていた参考ページの内容をそのまま使ってしまったところもあります。自分はまだまだ勉強不足なのでこの夏休みを利用してもう少し勉強してみようと思いました。

20  感想・考察

まず、前橋氏の電卓をコンパイルすることから始めたのだが、大学のUnixではエラーがでてコンパイルできず、それ以上先に進めなくなってしまった。そこでWindowsでも使えるUnixである"cygwin"をインストールするとmakeできたのだが、この"cygwin"のダウンロード、インストールなどがたいへん時間がかかった。また電卓の解凍のほうもうまくいかず、前橋氏の電卓を実行するまでにかなりの時間を要した。そして、bisonの方の多機能電卓も実行してみてプログラムなどの理解に入った。今回作った電卓は主に前橋氏の電卓を参考にして作った。演算子の優先、変数、関数定義、条件分岐・ループ、sin、cosが使えるようにしてある。行列、複素数も追加したかったが、エラーの連続で結局わからず、また最初のコンパイル時で時間をかなり取られていたので、ここまでが限界だった。

21  感想

今回の課題は、電卓という身近なものを作製するという事だったのですが、 自分なりに比較的早い段階で終わると思っていたのですが、1からプログラムを作成していくとエラーが大量に出てしまい、実行する事が出来ませんでした。 結果的に前橋氏のプログラムを元にして実行しました。 電卓を作成する作業は、「筧教授」のコンパイラ製作に似ていて、字句解析の要領で行っていることに気づき、前橋氏のソースの解読にはあまり時間はかかりませんでした。 提出期限を延ばしていただけなければ終わらせる事は出来なかったかもしれません。 プログラムは、途中経過の分もすべて添付します。 よろしくお願いします。

22  感想

今回は、かなり友人に助けてもらってやっとでした。現時点では理解が足りていませんが、扱っている内容自体は興味深く、詳しく解説をしているサイトへのリンクが先生のサイトから張られていたので、夏休みの間にじっくりと読み直して、プログラムを作りなおしてみようと思います。

23  まとめ・感想

夏休み中ということでハードなスケジュールの合間を縫って 課題作成をしたわりに とても長ったらしいレポートになってしまった. C言語はポインタや、構造体、共用体など まともに使ったことがないものばかり だったのでそれの使用方法などで戸惑うことがたくさんあって. 勉強不足だということも思い知らされた。 それだけでなく, 参考資料として与えられた前橋氏のHPは解説はとても わかりやすくて理解できたが, プログラ ングの内容 の標高が高いものだったので、、 初めて知ることばかりだった。 トレースするのがかなり辛かったです。

flexとbisonの仕様書ファイルを作るにあたっては、 仕様書ファイルといわれているだけあって, 字句の種類、正規表現、構文規則を紙に書くノリで、 とても感覚的でわかりやすいと思った.

問題はC言語で書かれたその他のモジュール。

自分はJavaの方が好き。

今回の課題は色々アイデアが膨らんで楽しかったけれど, そのアイデアを実現するだけの知識と能力がなかった. あと、根性も。

自分から自主的に 何か作るためにはそれに見合うだけの知識が必要だと思った。 根性も。

それにしても今回はわからないことが多すぎた。

24  <感想>

sin,cosの計算を追加しようとしたが、プログラムが複雑すぎで把握しきれなかった。 構文規則としては,


sin 式    、  cos 式
というような、非常に簡単なものだが実際に組み込もうとしてもうまくいかず、コンパイラ時にエラーが無くならなかった。これは、もう少し時間があれば意味解析や構文解析のプログラムを読めば何とかなるだろう。
複素数の場合はï"を-1 として扱うのか文字として扱うのかがはっきりしなかった。
しかし、このプログラムに文字式の計算を扱うことが出来るように変更することでï"を虚数・文字のどちらとしても表すことが出来るようになる。

行列演算は以前の課題で提出したものを改造すればと思ったが、C言語のままではないのでどこを直せばよいのか解らなかった。

最後に、まだ夏も始まったばかりなのでLINUXをインストールして前期の課題で出来ていなかったところとかを確認してみたいと思います。

25  感想

人の作ったソースを見て理解し、改良するというプロセスがとても面白かった。 良く見てみると仕様がOctave準拠でなかったりするが、これは仕様が良くわからなかった為です。 ifやwhileはOctave準拠だと使いづらいとおもうので一般的な構文で定義した。 もうちょっと拡張したかったのだが今回はここまでとする。

26  感想

最初の四則演算のプログラムと変数やsin、cosなどの関数を 使うプログラムはweb上のものを組み合わせたもの だったので、作るまでにはほぼ時間はかからなかった。 しかし、ひとつひとつ自分なりにきちんと理解したので、 解説はほぼ完璧である。 そこから、次に複素数をいかにして実現するかを考えた。 プログラムの解説としてはすでに上で記述済みだが、 ここはかなりの時間を要した。アイディアとしては、 思いついたものの具現の仕方で、場合分けの方法にとまどった。 結果的に場合分けがうまくいったので 実現することができた。 最後に、web上の「電卓を作ってみよう」のプログラムを利用して、 制御文や関数を定義できる電卓を実現した。 時間がなかったために、解説がいささいか不十分であるかとは、 思うが点数に加算されることを期待したい。 

今回は、最初はどのように考えてよいかわからなかったが、 プログラ ング言語論の授業でLISPの処理系を作るというものが あったので、それと関連づけることで、どのようにインタプリタ を作っていけばよいかを考えることができた。まさか、こんなにも 「電卓」が奥の深いものであるとは、思わなかった。苦労した部分 も多々あるが、楽しかった。これを更に煮詰めていけば、数値計算 の分野を更に理解できるようになるのではないだろうか。 時間がなかったために、行列の実現などは、かなり考えたまでも 実現にはいたらなかったのが残念だ。提出期限を守るために、ここまで の段階でレポートは提出するが、今後、時間を見つけて、更に機能性 に優れた電卓を目指し、可能な限り提出するつもりである。

今までのレポートは、ほとんど90点以上だったが、テストが難しく、 もしかしたら、0点かもしれない。従って、今回の課題は それを補うためにも、必死で頑張った。自分なりに分からない 部分もweb上の資料を熟読したりして理解したつもりだ。また、 レポートとしても、かなり解説した。 その努力の点も是非、認めてレポートの点をつけてもらいたい。

専門必修だったこともあるが、数値計算の分野の面白さにはまり、 この授業は、テストでは成果を発揮できなかったものの、全ての レポートに、妥協することなく、自分のできる限りの力を注いだつもりである。 それらは点数に表れていると思う。また、 授業も全部出席している。 それらの頑張りなども考慮して、B以上の成績 をつけてもらえたら、かなりありがたい。

最後に、半年間であったが、有意義な授業を受けられたと思います。 ありがとうございました。そして、これからもよろしくお願いします。

27  考察と感想

便利である事は分かった。VC++上でのコンパイルの仕方が分かったのは収穫である。

28  感想

今回のレポートは何かと時間のかかるものが多かった。まずは講義のホームページに掲載されていたbisonとflexの解説を読むことからはじめた。しかしこれが量が結構ある上に内容を理解できない部分もあり、読んでいくのに時間と労力をかなり要した。そしてbisonの解説の中にあった電卓を組み立てて、動かしてみた。ただ講義のページに掲載されていた評価基準によると、これを改良して得点を上げていくよりも同じく掲載されている前橋氏のページの電卓を組み立てていくほうが得点が高くなりそうであったので前橋氏のページに行ってみる。ざっとページを見てみて思ったのは解説が長く丁寧になされており、これならできそうということである。というわけでまずは組み立ててみようと思い、ソースをダウンロードしてみる。まずはHTML版のソースをダウンロードしたのだが、前橋氏のページに書いてあった方法でコンパイルしようとしてもディレクトリ分けがなされていないし、makeのターゲットファイルがないのでできない。そこで再びbisonとflexの解説書とにらめっこをしながらひとつずつコンパイルをしていこうとしたのだが、これがどうもうまくいかない。とりあえずbisonとflexのファイルはコンパイルできたのだがそこから先のgccがうまくいかない。友人に聞いてみたところ、その方法ではうまくコンパイルできない、tar+gzで圧縮されたソースならmakeでいけるとのことだったのでそちらをダウンロードしてみる。早速展開して前橋氏のページに書かれているとおりにmakeをかけると今まで悩んでいたのはなんだったんだ、というくらいあっさりとコンパイルが終了してしまった。とりあえず一通り動かしてみたが、特に問題はない。もっとも実行結果のところでも書いたが、1/3などの場合には正しい値を得ることができない。これを回避しようとするには単純に全ての結果を小数で表示するというやり方が考えられるが、これをやると1+1が2.000000という少々汚い表示になってしまうのでここらあたりを変更することはやめた。

とりあえず改良する点として、べき乗を組み込んでみた。べき乗はbisonの解説の方にも構文規則などが載っていて、これを前橋氏のプログラムに組み込んでいけばよいはずである。早速改良をしてみた。コンパイルも通った。しかしうまく動かない。a^bでaのb乗になるように規則を組んでいったのになぜか|a-b|を表示する。友人にこちらが付け加えた点を説明してみたが、なぜそんな動作をするのかが結局わからなかった。わからないなりに何とか活路を見出そうといろいろと入力していると、指数部を小数で入力したら正しく動いた。ということはとりあえずは動作ができたことになる。しかし、どうも納得がいかない。構文規則のところには「入力された式が整数のみならば演算も結果も整数で行う」というのがあった。これに従えば整数同士の演算である2^2が計算できないのはおかしい。しかも2^2.0は計算できるのである。とりあえずこれができなくては先に進むことができないのでどうにかして直そうとしたのではあるが、結局期限が来ても直すことができなかった。期限が来てしまったので出さざるを得ないが、指数部が整数でも計算できるようにできなかったのは残念だ。

29  考察と感想

今回の課題を行うにあたりcygwinをインストールする必要があったが家の回線が一般回線だったためダウンロードに3時間もかかってしまった。あとはbisonの書き方に慣れるまで少々てこずったが解説がとても丁寧だったためなんとかなった。単純な製品からどんどん拡張していくのはとても魅力的だった。

30  考察

最終的にはただの電卓≠ラき乗算というへっぽこな結果に終わってしまったが、自分的にはこの後出てくる点数の低さはともかく(あぁ、採点ページを見るのがつらい)、いろいろ勉強になった。

とくに、以前Javaで「電卓もどき」を作ろうとしたとき、それなりのものを作るためにそれなりのコード数が必要になったのに比べ、bison(flexもだが)で作った場合、非常に簡素なコードで済む。

bisonは電卓作成ソフトなわけではない(サンプルソースに電卓がよく使われるが)。それにもかかわらず、これほどまでにきれいなコードで記述できるのは、ある意味感動であった(Javaのときは技術の拙さもあってグチャグチャだった)。こうしたツールの使いこなしがソフトウェアの生産性の向上につながると思う。

sinやcosを実装するのは、math.hにそれらの関数が用意されていることもあるのでそう難しくはないと考えられるが、手を出せずに終わってしまい、少し悔やまれる。

最後に、この講義は目指すところが非常に高いにもかかわらず、またそれを面白いと感じている自分が居るにもかかわらず、自分の技術・知識の拙さから毎回低いレベルで手を打ってしまった自分が少し情けない。この休みに少し勉強せねばと思いつつも、祖母が危篤だったりするのでこれから実家に帰ります。

では、良い夏休みを。

感想

今回の課題で痛感したのが自分のプログラム能力の無さである。今回提出したプログラムの内容だけでは内容が薄いなと思い、複素数も扱えるようにしようと試みたのだが全くうまくいかなかった。頭の中ではこうしたらうまくいくのではというビジョンがあってもそれを実際にプログラムに置き換えるということができなかった。

最後の課題なので数値計算という講義全体での感想を述べると、数値計算の講義は数値計算を楽しむよりもプログラ ングを楽しみ、プログラ ングの難しさを味わうような内容だった。

31  感想

今回の課題で最後になるが、やはり難しかった。 このようなインタプリタが完璧に作ることができたら、 ソフトウェアとして売り出すことができるのではないでしょうか。 最初は頭の中でいろいろ方針を立ててみたが、実際に実装できたものは 少ない。授業中に、この演習をやるなら、前の4回の演習を やり直した方が良いといった意味がようやくわかった。 WEBのヒントなしには、おそらく四則演算くらいしか できなかったであろう。さらに、演習をする際にいろいろな WEBを検索してみたが、自作の電卓をオープンソースで 作成している人が多いことがわかった。(といってもホームページを 開いている人の中でだが)これを自分用に改良することもできるが、 著作権の問題はないのだろうか?私はオープンソースのものは、 いくらでも自由に使用してよいものと思っています。

32  感想

今回の課題はとても難しかったが、ホームページにのっているのを利用してやるのではなくて、情報科学研究の授業で発表してくれたものを参考に友達に聞きながらやりました。構文解析の部分は他の講義(プログラ ング言語論)で理解していたので差ほど難しくありませんでしたが、はじめてやることなのでとても戸惑いました。
 最後に半年間お世話になりました。

33  感想

今回のレポートは、今までのレポートの中で一番時間がかかったし、難しかった気がする。bisonやflexは見るのも聴くのも触るのも初めてで、結構とまどったけど、やり方を知ってしまえば、すごいことができるんだと感動した。エラーなどがたくさんでて、おそらく課題と関係ないエラーが多かったのだろうが、cygwinやunixに関する知識も増えた気がする。また、直接レポートには関係ないが、GNUに関してもなんだろうと思ったので色々調べてみて詳しくなったと思う。GNUのソフトウェアはすべてフリーソフト(フリーという言葉は正確ではないらしいけど)なので色々な環境に移植されているし、雑誌の付録についていることも多い。今まで使用してきたソフトもかなりGNUの恩恵に預かっていたことが分かりありがたいなと思った。でも、今回のレポートでのヒットは、cygwinのインストールだったと思う。学校が閉鎖されなければ、cygwinをインストールすることなんて思わなかっただろうし、cygiwnに関わるきっかけなんて他にあったとも思えない。そんな感じで、今回は結構いっぱいいっぱいだったけど、レポートをやっていくうちに楽しくなって、機能をどんどんつけたいなと思うようになった。bisonやflexも使っていると、結構面白くてもっと使ってみたいと思う。 数値計算の授業、半年間お世話になりました。有難うございました。

34  感想

今回の課題は難しかった。プログラ ング言語論の講義でコンパイラをやったので、少しは理解していたところもあり、助かったと思う。行列演算や複素数など他のところまではできなかったが、結構おもしろかった。

35  感想

今回の課題は自分で一から考えて見てもさっぱり分からなかったのでプログラムの説明をするほうを選んだ。 プログラムを説明するにあたって苦労した事はこのプログラムは構造体や共用体がふんだんに使われていた事 で構造体と共用体を勉強する事からこの課題は始まった。この2つを勉強しながらプログラムを読んで言って分 かった事だが、このプログラムにはいくつか自己参照構造体が使われている事に気づいた。この自己参照構造体 を用いて変数や式につながりを持たせていた。そのため関数名にchainという文字列を使っているのかと考えた。 ホームページをみてみると100overの人が結構いるみたいである。最高点は何点になることやら。

36  考察

記号処理に関するアイディアは、List言語やProlog言語をヒントにしたため、比較的簡単にまとめることができた。 また、構文解析と評価をほぼ完全に独立させたため、相互の依存関係が少なくなり、モジュール性が高くなっている。 そして、構文解析の結果と評価の結果、即ち、プログラムとデータが共にセルで表されているため、今回は試していないが、 メタインタプリタを作ることも十分可能だろう。

それに対して、数値計算部分は問題点が多い。 例えば、eigで得られる固有値の対角行列は、現在のところ普通のフル行列のデータ構造に入っている。 これは、時間的にも空間的にも無駄が多い。 また、LU分解を扱うようになると、置換行列を表すデータ構造も必要になるであろう。 このような、数値計算部分に関する問題は、主に解決すべきことの多さによるので、今回は時間との兼ね合いから 適当なところで打ち切ることにした。

時間との兼ね合いということでは、オブジェクトセルの実装も実現することができなかった。 関数のオーバーロードは既に可能であるので、後は、ユーザ定義クラスが作成できれば、それなりの オブジェクト指向プログラ ングも可能となる。 ユーザ定義クラスで区間クラスなども実装してみたかったので、この点が最も残念な点である。

ところで、この課題を行うに当たって、octaveやMATLAB等の仕様を調べてみたが、プログラ ング言語として見ると、 これらの数値計算ツールで使われている言語は、必ずしもモダンではないように感じる。 例えば、演算子の前後に空白を入れるだけで意味が変わる構文がある点である([1 -2;2 -1][1-2;2-1]など)。 或いは、``'''という文字が共役転置の記号と、シングルクオートの記号の両方に使われているため、 字句解析の段階で文脈に応じて判断している点もそうである。 このような直交性についてだけ言えば、TNCはoctaveやMATLABに勝っている可能性がある。

37  感想など

今回は flex, bison を用いた字句解析と構文解析があったが、プログラムを読んで いるうちに使い方がわかってきた。尚、プログラムは「電卓を作ってみよう」
http://member.nifty.ne.jp/maebashi/programmer/c_yota/calc.html

を参考にしている。
このプログラムを初めは RedHat Linux 7.1J で動かしたのだがこのときは動かな かった。(コンパイル時にエラーが出る。) しかし、RedHat Linux 6.1J で動かしたら動いた。7.1 で動かなかったのは GNU readline あたりの問題かな?と思った。
今回で最後の課題となるが、この授業ではいろいろな数値計算ツールに触れることが できた。そして、この経験を今後に役立てていきたい。

38  感想

前期の授業も試験も終わり、それから取り組まなければならない課題であった。 そのため、時間に余裕もあり、しっかりと取り組むことができるだろうと思って いたが、そううまくはいかなかった。夏休みは夏休みでいろいろと忙しく、思う ように時間を取ることが出来なかった。

39  感想

今回は、何も知識がない状態から課題を始めたので、かなりつらかった。しかも課題を始めたのがテストが終わって1週間もたってからだったので正直、集中力がなかった。講義のHPにあるプログラムをコピーして解説しただけ、という気もするが、C言語の知識は、深まったような気がする。

40  感想

難しかったです。これが限界です

41  感想

もっと様々な機能をつけたかったが提出期限までにそれに至らなかったので 今回提出分はここまでとしました。

42  感想

まず、このような機能がある電卓のインタプリタが作れた、ということに感動した。まだ、エラー処理やメモリ管理など厳密にやらなければならない部分があるが、「まったくわからない」と思っていたbisonも、これである程度のインタプリタやコンパイラが作れてしまうということで驚いた、と言うか嬉しい。今回の課題よりももっと槙i的なものを作りたい。

端末が空いてなかったので苦戦した。

43  考察・感想

 はじめたのが少し遅かったせいか、もう少し時間があれば行列も表現できたと思う。今回と同じように、複素 数型をさらにそれを含む行列型として定義し、すべての内部処理を行列型でやって出力する際に表記を変えるこ とで実現できる。しかし、このような方法では、オブジェクトを定義したりデータ型を定義したりできない。ま た、メモリが非効率的に使われる。これを克服するにはデータ型をしっかりと宣言する必要があると思った。

44  感想

最終的に手をつけたのは(1),(1++++),(1+++++),(2),(3)です。 プログラムは別のファイルです。 今までの課題と違い、全てにおいてやりにくかったというのが感想です。 とりあえず提出します。

45  感想

今回は、課題の締切日(15日)の1週間前くらいから学校の端末室が閉まっていたので、正直困った。
課題は、講義で説明がなかったので、知識がなく、相当つらいものだった。ただ、この課題に関する講義をしたら、ぜんぜん時間が足りなくなるほどの量であることは、実際課題を解いてみて実感した。

46  感想

かなり難しいと思っていたが、意外とすんなり入り込めたし、bisonがおもしろい。複素数を扱えるようにするために、一応bisonソースを作成したのだが、うまく動かない。いろいろ試行錯誤結果、時間がないので、とりあえず現段階での提出となってしまったのがくやしい。いかんせん、入門したての分野なのでもっとヒントが しかった。今後夏は暇なので、以後簡単な拡張を自分なりに試してみようかと思う。

47  今回の課題にかかった時間、感想など

今回のプログラムは両方ともwebから持ってきたものなので実行する だけでしたが、プログラムを理解するのにかなり時間がかかってしまい ました。構文解析のところは筧教授の講義である程度理解はしていた のですが、c言語ということでポインタがでてくるのに困りました。 また、複素数をどうやったら使えるようになるのか、いろいろ 構文規則を考えたりしましたが結局期限になってしまったのでできません でした。夏休みはまだ時間があるので、複素数については自分でも 考えてみますが、300点近い人のプログラムを一度見てみたいと思いま した。

48  感想

最後だし、バッチリ決めようと思ったがどうにもこうにもならずに期限外になってしまった。非常に残念です。でも、もういっぱいいっぱいです。

48.1  感想

まず最初bisonやflexについて説明htmlを読んだのだがいまいちぴんとこない、そこでやはり自分で書いてみるのだがyyperseとbisonとの連携がうまくいかない。結局bisonの説明ページにあった電卓の例をよく読み一部機能を追加することにした(単純な字句解析器ならwl言語のコンパイラの字句解析部を一部修正することで流用できることにあとで気がつく)。まずsinなどの関数を扱うためには一つ一つ実装していたのでは効率が悪いのでプログラ ング言語論で作ったコンパイラのように名前表を使った登録型(?)の機能追加方式とした。沫ならaction部で直接計算するのではなくこれも体系的にしたほうが拡張性があるのだが修正することができなかったのが残念。

自分としてはVMがあってコンパイラがあって、というふうな体系がプログラ ング言語論の課題で頭にこびりついているのでそれを半自動化してくれるFlexとBisonは夢のようなツールであるように感じた。

49  考察と感想

今回の課題は時間がたくさんあったのにもかかわらず難しかったので友達の力をかりてようやく完成させることができました。もっと勉強しなくてはいけないと思い知らされました。

50  感想

今回の課題は夏休みに入ってからとりかかってしまったため、気が抜けてしまった部分もあり、まともなものを作れず、 ズルズルと先延ばしして、結局、期限外提出になってしまった。もっとまともなものに仕上げてから提出しようと思って いたのだが、しっかり期限内に提出している人が大勢いたため、とりあえず中途半端ながらも提出する事にした。この ままのレポートの点数では足りない気がするので、せめて複素数を計算できるところまでは他の人のレポートを参考 にしっかり仕上げて提出したいと思う。

51  感想

提出期限に遅れてしまったが、提出します。数値計算の授業で、数値計算ツールの知識などが今まで無に等しかったのが、とても増えたような気がし、とてもうれしいと感じる。

52  感想

今回の課題は今までの講義の集大成ということもあって、 僕にとって俣魔ノ大変なものでした。プログラムがあまり得意では ないので、かなりの時間と労力を費やしました。他の人達に比べたらまだまだ努力が 足りないのかもしれませんが、自分なりにかなりがんばったつもりです。今回に限らず 数値計算のレポートはどれも困難なものばかりでとても勉強になり、同時に自分の 力の無さも思い知らされました。プログラムというのは、やはりコツコツと努力を 積み重ねていくものであり、汲ノ能力が上がるというわけではないと思うので、 あまりプログラムに苦手意識を持たずに努力していこうと思います。今回の レポートで反省すべき点は、はじめてというわけではないのですが、やはり提出期限を 守ることができなかったことです。ここで、提出期限が遅れ、先生に多大なご迷惑を お掛けしてしまうことを心よりお詫び申し上げます。俣魔ノ申し訳ございませんでした。 研究がお忙しいとは思いますが、どうか採点の方をよろしくお願いします。 最後に、半期という短い間ではありましたが、懇切丁寧な講義をしていただき、 俣魔ノありがとうございました。

53  感想

今回の課題は、取り掛かりが遅かったこともあって 自分としても中途半端なものになってしまいました。今回が一番難しく、 数値計算というだけで、これほど奥が深いとは思いませんでした。 今回、様々な(フリーの)ツールの存在を知り、その利用をすることで生産性を 高められることを知ったことが一番の成果だと思います。 今後とも、広く情報収拾し、効果的なプログラムが書けるよう精進したいです。


File translated from TEX by TTH, version 2.80.
On 22 Aug 2001, 00:32.