Javaで字句解析(正規表現)、AST、コンパイル(機械語への変換)、言語の機能を開発していくんだが、私のような素人にははっきり言って初見でソースコードを読んでいくのはかなり難解。
言語デザインも、オブジェクト指向、配列、型判定などが含まれており、構想とそれを実現してしまう技術力が凄い。
C言語ではなくオブジェクト指向であるJavaでClassベースで作っているのが本書のユニークなところ。
この注文でお急ぎ便、お届け日時指定便を無料体験
Amazonプライム無料体験について
Amazonプライム無料体験について
プライム無料体験をお試しいただけます
プライム無料体験で、この注文から無料配送特典をご利用いただけます。
非会員 | プライム会員 | |
---|---|---|
通常配送 | ¥460 - ¥500* | 無料 |
お急ぎ便 | ¥510 - ¥550 | |
お届け日時指定便 | ¥510 - ¥650 |
*Amazon.co.jp発送商品の注文額 ¥3,500以上は非会員も無料
無料体験はいつでもキャンセルできます。30日のプライム無料体験をぜひお試しください。
¥2,838¥2,838 税込
発送元: Amazon.co.jp 販売者: Amazon.co.jp
¥2,838¥2,838 税込
発送元: Amazon.co.jp
販売者: Amazon.co.jp
¥872¥872 税込
配送料 ¥347 1月13日-15日にお届け
発送元: 毎日発送全商品徹底除菌不良品は全額返金保証翔竹林書房1000円以下のご注文はゆうメールです 販売者: 毎日発送全商品徹底除菌不良品は全額返金保証翔竹林書房1000円以下のご注文はゆうメールです
¥872¥872 税込
配送料 ¥347 1月13日-15日にお届け
発送元: 毎日発送全商品徹底除菌不良品は全額返金保証翔竹林書房1000円以下のご注文はゆうメールです
販売者: 毎日発送全商品徹底除菌不良品は全額返金保証翔竹林書房1000円以下のご注文はゆうメールです
無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません。
ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
2週間でできる! スクリプト言語の作り方 (Software Design plus) 単行本(ソフトカバー) – 2012/2/10
千葉 滋
(著)
このページの読み込み中に問題が発生しました。もう一度試してください。
{"desktop_buybox_group_1":[{"displayPrice":"¥2,838","priceAmount":2838.00,"currencySymbol":"¥","integerValue":"2,838","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"8sE95t5om1WCNkAaZ4p15c2JsSG8aU2zoJapj8BrDWaRFPejjgxtQqiCakSHUa9pGidMvk0MsTo6kwuSik040D58AbR1PywJRYkYudSM2iwU4M4EKCW5Eqc9VrHgTe90eW4T0Q1hLZ4%3D","locale":"ja-JP","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"¥872","priceAmount":872.00,"currencySymbol":"¥","integerValue":"872","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"8sE95t5om1WCNkAaZ4p15c2JsSG8aU2zvUOvYM84fttF9wSketTnc6ruVVkZ1UmYz4NlkpZxwwGMKskH1RQv27DPnLCBl0BrZkZrwjDlyHJKM0JmZB2okog2JUYcMQ5fl2TGrAtB5NpkXW%2Fx59g70QFkVGAMsCCFGukulC3TA1uhEfce0CFLUg%3D%3D","locale":"ja-JP","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}
購入オプションとあわせ買い
コンピュータ言語の習得をするとき、自分でOSやコンパイラ、プログラミング 言語を作ると、非常に深く本質を学べます。本書は、JavaScriptやPHP、Python、Rubyのようなスクリプト言語(Lightweight Language:軽量言語)を、自分の手で作り上げる方法を解説します。しかも2週間すなわち14日間で(大学の前期授業と同じ日数です)、高度な概念を自然に理解できるようになります。さらに知識を深めるために特別講義の5日間もサービスしました。普通の本ならば、後回しにしてしまう重要な概念もとてもわかりやすく解説しました。サンプルコードを読みながら、プログラミング言語を作ってみませんか?
- 本の長さ384ページ
- 言語日本語
- 出版社技術評論社
- 発売日2012/2/10
- ISBN-104774149748
- ISBN-13978-4774149745
この商品をチェックした人はこんな商品もチェックしています
ページ: 1 / 1 最初に戻るページ: 1 / 1
登録情報
- 出版社 : 技術評論社 (2012/2/10)
- 発売日 : 2012/2/10
- 言語 : 日本語
- 単行本(ソフトカバー) : 384ページ
- ISBN-10 : 4774149748
- ISBN-13 : 978-4774149745
- Amazon 売れ筋ランキング: - 476,613位本 (本の売れ筋ランキングを見る)
- - 580位開発技法
- - 1,376位ソフトウェア開発・言語
- - 10,496位電気・通信 (本)
- カスタマーレビュー:
著者について
著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
著者の本をもっと見つけたり、似たような著者を調べたり、おすすめの本を読んだりできます。
カスタマーレビュー
星5つ中3.8つ
5つのうち3.8つ
20グローバルレーティング
評価はどのように計算されますか?
全体的な星の評価と星ごとの割合の内訳を計算するために、単純な平均は使用されません。その代わり、レビューの日時がどれだけ新しいかや、レビューアーがAmazonで商品を購入したかどうかなどが考慮されます。また、レビューを分析して信頼性が検証されます。
上位レビュー、対象国: 日本
レビューのフィルタリング中に問題が発生しました。後でもう一度試してください。
- 2024年1月19日に日本でレビュー済みAmazonで購入
- 2020年12月31日に日本でレビュー済みAmazonで購入Javaを使用した書籍でした。
僕個人としては、EclipseやNetBeansを以前使用していたので、Javaは、そのものは問題ないのですが、ちよっと残念でした。
C++で作成したプログラムに簡単なマクロ言語を搭載したいと考えて書籍を探していたのです。
ガベージコレクターなんか関係ないし、参ったなって感じです。
Javaが有償版になってから、Eclipseのインストールがうまく行かなくなっているのが気になります。
この書籍を買ったので、再度試してみます。
NetBeansなら、うまくインストールできるかもしれないとか、いろいろ、考えています。
他のレビューに、サンプルコードにコメントが無いと、書かれていました。
Eclipseを使用してサンプルプログラムが書かれているみたいなので、そのせいで、コメントが無いのだと思いますので、その点ではいたしかたないと思っています。
Eclipseの場合、インストールバージョンがちょっとでも違うと文字コードの問題が発生する様に作られているからです。
しかし、それにしても、買ってからJavaだったと解ったので、直ぐに、レビューする事にしました。
VS2019では、既に、Javaが使えなくなっています。
勿論、サンプルコードが、VSで読み込めるのかどうか不明です。
NetBeansでもサンプルコードが読み込めるかどうか不明です。
作者への追伸
C++用としてガベージコレクターなんか無視で、マクロ言語書き方の書籍欲しいと思ってます。
- 2012年4月21日に日本でレビュー済みAmazonで購入大学の情報系学科で勉強できて良かったと思うことの一つに、コンパイラ理論があります。プログラムをどのように解釈して構文木を構成し、マシン語に落としているのか。これは素人がちょっと頭をひねったくらいでは思いつきません。
本書は、そんなコンパイラの作り方を考え方から丁寧に解説する本です。
類似の書籍はいままで何冊も出ていますが、肝心の字句解析や構文解析の部分はyaccやANTLRといった自動生成ツールを使ったものが多く、私からすれば本当に復習したい部分が欠けていました。
かといって大学の教科書で採用されている書籍は実装例がC言語のものがほとんどでオブジェクト指向によるコンパイラの実装例は学べません。
本書では、簡単なスクリプト言語を題材にして、徐々に拡張しながら作るスタイルでコンパイラの本質が学べます。
オートマトンで真面目に実装すると大変な字句解析を正規表現で省力化したり、構文解析には内部DSLによるパーサコンビネータを利用したりしているところが、現代利用できる技術を取り入れていて実践的です。
前半は、内容があまり難しくならない程度の説明になっています。著者と学生との掛け合いや、コラムとして挿入されているマンガなど、随所に読みやすさを向上させる工夫も入っています。
15章の自習編以降では、大学で学ぶオートマトンによる字句解析、BNFやLL構文解析、ボトムアップ構文解析についてもわかりやすく解説されており、本書で学習したうえで専門書に取り組むと、より深く学べるのではないのでしょうか。
言語処理系に興味のある人には間違いなく買いの一冊でしょう。
- 2013年8月24日に日本でレビュー済みAmazonで購入本書はタイトルの通りに一日1章として全14章で構成・・・ではなく、応用的な説明の章を含めると19章まで用意されています。
本書で作成するのは、筆者オリジナルでオブジェクト指向のStone言語。とは言え、所詮はサンプル用言語なので整数しか扱えないとか、変にif分のカッコ”()”や文末のセミコロン”;”を省略可能にしたが故に却って変な制約が出来たりとか、なぜそうしたのか理解に苦しむ点も多々あります。色々と制約もあるので(言語としては)過大な期待は禁物ですが、その辺は読者への課題と言う事なのでしょう。
本書の特徴としてはyaccなどのコンパイラコンパイラは使わず、Javaの正規表現のライブラリを使って構文解析を行うと言う点が挙げられます。(応用の章で、自力で字句解析を行うやり方の説明もあります)
同じStone言語をスクリプトとコンパイラに対応出来る様にしている点も好感が持てます。
筆者は教えるのが商売の方なので、章の構成は順に機能を追加しながら次に高速化(最適化では無い事に注意)を計り、徐々に応用的な説明に移ると言うスタンダードな構成で安心して読めます。
説明の文章は平滑で分かり易い表現を心がけているようで、他書・・・例えばコンパイラ原理・技法・ツール(いわゆるドラゴンブック)や情報工学入門選書コンパイラ、コンパイラの構成と最適化の様に数ページ目を通すだけで強烈な眠気が襲ってくる事はありません。
分かり易い説明に加えて、読者を飽きさせない為に本文の随所に数人の架空の人物達による会話形式による説明や、筆者の体験を元にしたマンガが挿入されています。
その心配り自体はよく分かるのですが、正直な所、真面目な説明中に学生のノリの会話が挿入されるのはむしろ邪魔に感じました(全編がそう言う方式なら良いのですが)。普通に本文中で説明して頂いた方が読みやすいかな、と。
マンガの方も、(私は本文とは別にマンガが挿入されるのは好きな方なのですが)如何せん、内容が今ひとつです。社会人(技術者)の方々の体験談なら、色々と含蓄もあるし、「あるある」と共感も出来るのですが・・・唐沢なをきの電脳なをさんの方がまだ含蓄があると勘違いしてしまいそうになるレベルと言えば伝わるでしょうか。
あと、強いて欠点を挙げるならば、ソースコードにコメントが一切ありません。ページの都合云々では無くダウンロード出来るソースにも、一切無いのです。
ドラゴンブックの擬似コードにすら若干のコメントがあると言うのに。本文中で説明されているとは言え、これはかなり不親切と言わざるを得ません。
JISにソフトウェアの品質についての定義があります。これは当たり前の事が小難しく書いてあるだけの定義なのですが、その中にソフトウェアの移植性と保守性についての定義があります。
高品質のソフトウェア構築の為にはもちろん、読みやすいコーディングと共に適切なコメント(ソースコードのドキュメント性)が重要なのですが・・・著者の方はアカデミックの世界しか知らないから、そう言う事は知らないのでしょうね・・・いや、挿入されたマンガの内容からするとむしろ、シンプルイズベストを勘違いしている気配すら窺えます。
他人のソースコードを見る人(読者)の立場になって考えて欲しいものです。
この辺は学生さんにはマネをして欲しくない点ではあります。むしろ、反面教師として頂きたいな、と。
などと言う事を総合的に判断して、評価しました。
ちなみに言語作成の本当に専門的な部分、オートマトン、BNF、LL、LRや最適化等に関しては、ドラゴンブックやコンパイラの構成と最適化の方が詳しいです。
もっとも私は強烈な催眠波に負けて読破出来ていませんが。
- 2012年9月23日に日本でレビュー済み説明はほとんどなくソースコードがダーっと書いてある。
プログラミング言語制作に関する本が殆ど無く、あってもこんな本しか無いが、こんな本を読むなら自分で考えた方がマシ。
というか考えればできるので自分で考えた方がいい。
- 2014年2月19日に日本でレビュー済み「2週間でできる!スクリプト言語の作り方」というタイトルはこの本にふさわしくありません。 コンピュータサイエンス学科の2年分の内容なんじゃないですか? 第14章「静的型付き言語にして高速化」ではお手軽スクリプト言語のはるか先の内容に及んでいます。 中田育男先生による序文がこの本の内容と価値を適切に要約して述べてくれています。 「今風の言語を今風の作り方で作ってみせる本」ーーーなるほどそのとおりでした。
この本に掲載されたプログラムコードをぜんぶ写経して動かしてみました。 朝仕事に出かける前の30分と夜寝る前の30分に写経を続けて6週間ほどかかりました。 サポートサイトからダウンロードせずあえて本のとおりに手でキー入力したJavaコードがちゃんと動きました。 エラー皆無な信頼できるコードです。 写経したらコンパイルエラーになるお粗末なプログラミング本とは一線を画しています。
7.5章のクロージャーの解説が目から鱗でした。サイ本やDouglas ClockfordのJavaScript Good Partsを読んで クロージャーがJavaScript言語の核になる重要な概念だとわかったつもりになったが、実行系がどう動作するものか 想像できなかった。クロージャーを実装した言語処理系のソースコードをこの本で初めて読んで やっと腑に落ちました。
この本のJavaコードは「public staticなネストしたclass」を多用しています。 リスト6.3 BasicEvaluator.javaなどたくさん。 わたしはこの書き方にお目にかかったことはいままでありませんでした。 最初びっくりしましたが見慣れると便利とわかりました。 ひとつの*.javaファイルに(ネストしない)publicなJavaクラスの定義をひとつだけ書くのが初歩のJavaの定石。 だからクラスを100個定義したらjavaファイルが100個できる。 いっぽうstaticなネストしたclassの書法を使うとひとつの*.javaファイルのなかに複数のpublicなクラス定義を 記述できる。だからファイル数が少なくなる。 StoneLanguageのJavaコードではpublicなclassが150個ぐらいあるのに *.javaファイルが70個と少ない。 caller-callee関係にある複数のclass群をひとつのソースファイルに書けば エディタのウィンドウひとつのなかで見渡せるからわかりやすい。
そしてGluonJ。2004年頃雑誌によく取り上げられていたアスペクト指向プログラミングAOPが こんなかたちで進化をとげていたのですね。 わたしは職場で初心者にJavaプログラミングを教えるテキストのようなものを書くことがあって、いつも困っていました。 はじめの章でJavaクラスの最初のシンプルなコードを示して教えたあと、次の章に進んで新しい話題を取り上げようとすると はじめに示したJavaコードのソースを書きかえねばならなくなる、やむをえず次章の内容も見越したコードをはじめに示すと、 未だ習っていない内容が説明無しに登場するので読者が戸惑ってしまう。テキストを著述する経験をお持ちの人なら わかるでしょう。GruonJの@Reviserアノテーションはこの困惑を解消してくれます。 @Reviserによって元のクラスの定義を修正せずに必要に応じてクラスの定義を拡張することができる。 @Requireと@Reviserによる修飾関係を辿ればどのクラスがどのクラスをどう拡張したのか明確にわかる。 小さく芽吹いたソフトウェアがしだいに幹たくましく枝葉を茂らせてきた様子がコードに表現されている。 コードを読み返せば時間軸に沿った成長過程を追体験することができる。新しい経験だと感じました。