1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Hot Soup ProcessorAdvent Calendar 2016

Day 7

えたーなってる中のHSP製インタプリタについてとか

Posted at

HSP製簡単インタプリタについて

皆さんはHSPでプログラム言語を作る!と聞くとどう思いますか?
ちょっと考えてHSPには向いていないようなんですけど
何例か成功例もあるみたいです
コンテストで受賞したHSP製プログラム言語もありましたし
公式掲示板にfさんが載せてた例もあります
HSP製tinyBASICもコンテストで受賞してたような
結論として あまり高度なのは難しいが 可能である
でありましょう

自分の作ってる簡単インタプリタ(中間言語)

という訳でHSPで高度なプログラム言語を作るのは辛いけれど
割と低級なプログラム言語を製作するのは可能である
ということで
自分もHSPで中間言語を製作しております

その中間言語の進捗は某ネット友人の掲示板で報告しながら製作しています
自分の中でコツコツやるだけでは、あんまり捗りません
どっかで他人に見せびらかしながらやるので 割と製作は順調です
更に自分のサイトのwikiにもちょこちょこのっけています
NET公開駆動開発ってやつです(そんな言葉があるかは謎ですが^^;)

ただNETで公開しながら開発と言っても
TODOとか予定とかを書いちゃうと 実現出来ない可能性が多々あり
実装しながら報告。コレです。コレ肝心です

という訳で僕はNETで公開しながら
中間言語を書いていますが 最近スランプ気味です
中間言語を書くという前提で更新していたのですが
簡単言語なら全体としても割とスリムっぽいんですよね
プログラム記述としても 簡単言語の方がスリムですし
とはいえ 中間言語を書く。から簡単言語を書く。に昇進しましても
全体像がぼやけてて 考え中のお休み中ってかんじです

自分が書いてるのは、プログラム言語にまで成長してないですよ
中間言語を書いてます。構造化言語未満アセンブラ以上ってかんじ
というのもプログラム言語作成初級者がいきなり高級な言語を書くのは
無理ぽいので中間言語から始めようと思って始めました
で、現在の壁はたぶん
まんま中間言語を入力する方針だったんですけど
それだと、入力量が多すぎるんですよねw
入力を抽象化させて量を減らしたり 暗黙の了解で省略したり
たぶん、今のスランプは抽象化した記述の形式が想像出来ていないことに
起因している気がします

### もろもろ

自分、Advent calendarは2件参加中で
こっちはHSP製簡単プログラム言語製作についてで
向こうは写経と書写についてで
書き分けてるんですけど
書写と写経は簡単プログラム言語のソースコードが多くて
かぶるの覚悟で書写と写経についても書きますw

参考書籍というか読書の記録というか

自分がプログラム言語製作に興味を持ったのは割と昔です
「スモールコンパイラの製作で学ぶプログラムの仕組み」石田綾著 技術評論社
という書籍が図書館に置いてて
何回も読みましたw この書籍を読むのが楽しかったというのはきっかけの一つです
そして大きな図書館へ行った時、日経ソフトウェアのプログラム言語を作る。が特集の
回があって なんの気なしに買いました
「スモールコンパイラの製作で学ぶプログラムの仕組み」にはまるより昔かもw
大学の図書館でRHG『Ruby Hacking Guide』を借りて読んだりもしました
当時は難しくて難しくて ページをめくるだけでした
『Ruby Hacking Guide』は結局3年くらい前にAmaoznで購入したんですけど
未だに読破してないですね。さっさと読破したいですw
とか思ってたら 自作の中間言語作成の経験とか踏みまして
作成経験があるならではの理解進んでます感があって 訳わからないw
プログラム言語作成を目指すならコレ読まないともぐり。と言われる
ドラゴンブックも読んでない買ってない。ですw
プログラム言語作成は目指しているのにーw
という訳でタイガーブックも(そんなんありますよねw)
(いやいやAmazonで検索かけたらちゃんとありましたです。はいw)
読んでない買ってない。ですw
最近の自分的にHITした書籍というと
「タイニーBASICをCで書く」鈴木哲哉著 ソシム
ですね
自分の持っている疑問にちょいちょい回答をくださる書籍です

・「タイニーBASICをCで書く」色々納得してすごいw 
タイムリーなバイブルとなりましたw
・>観念の世界で自由に遊べる人は、案外、あっさりと書きあげてしまうでしょう
>理屈っぽい人ほどややこしく考えて、結局はお手あげになるか
ややこしく考えて実装方法がみつからない自分は後者なのだろう www
・観念で遊ぶって大事かもね。特にプログラマーにとっては
自分、観念で遊ぶこともあるけど ロジカルな気がするw
・自分、世界狭いしねw
壮大に遊ぶってDQXとかするけど、同じ敵ばかり狩ってしまうw
・自分、プログラム言語作成の本何冊か読んだけど きちんと知りたいことに答えてくれているのは この本が最初な気がする
・3回以上読みたいかんじw 今一回目の半分くらいw
以上自分のツイートより引用でした
Advent calendarに引用することも見据えたツイートだったんですよねw

「いまどきのプログラム言語の作り方」randy著 MYCOM
は大阪の大きい書店で衝動買いしてフェリーの中で読み始めた一書です
写経・書写がテーマの最近になって再読中です
2/3くらい写経したかな?
意外と古くなっててXPパソコンで動作を確認しながら写経してます
XPパソコン誤動作多くてイライラするので
メインのPCで写経してXPパソコンで動作確認って流れです。最近
「プログラミング言語を作る」前橋 和弥
書籍的には微妙っすね。雑学感が多くて肝心なこと書いてないかんじ
しかしサンプルプログラムはためになります
行数多くて書写も写経も大変ですがw
「ふつうのコンパイラをつくろう 言語処理系をつくりながら学ぶコンパイルと実行環境の仕組み 単行本」青木 峰郎 (著)
RHGの著者によるまんをじした書籍なんですが やっぱり難しくて読めなかったりw
「コンパイラ構成法」原田 賢一
コレも難しくてなかなか読めないですね
って初心者っぽい頃買ったからスキルが足りなかったからかもw
後、自分の書写/写経の原点の
「Rubyで作る奇妙なプログラミング言語 ~Esoteric Language」原 悠著
は簡単言語の実装が主で写経してみる気が始まった書籍です
「プログラマーのためのソースコードを読む技術」高木 信尚著
は自分の簡単言語の出発点で
ソースコードを理解するためのアセンブラっぽいサンプルを改造して
今の自分の作品があります

書いた後

自作エディットシステムの構想がとっかかり腑に落ちました
これでやっと少し前に進めるかんじです
腑に落ちたのは全体的な方針だけで
中規模な方針を決めるのはこれからですが
とりあえず。こういう場所をいただいて
全然、掘り下げれてないし
わざと未実装なこともしゃべらなかったんですが
#それしちゃうと実装しないんでw
頭にあることを吐き出したことで
やっと前に進めたかんじです
それはこれからはQiitaで書いてもいいし
ってかたぶん他の場所なんでしょうけど
掘り下げれていなくても
以前書いたこととかぶっていても
#ハイ読書履歴みたいの軽くブログにUPしたことあったよーなw
定期的に吐き出せば、煮詰まっていることも少々前に進めると思います
そういうことは意外とお勧めです
#未実装なことをNETにUPすることはお勧めしませんw

### 最後に

この投稿は Hot Soup Processor Advent Calendar 2016 の 7 日目の記事です。

  • 6 日目の記事: skymonsters_Ksさんの記事です
  • 8 日目の記事: zerogen_greさんの記事です
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?