概要Amazon.co.jpでの評価がかなり高かったので注目していた。書名通り,簡単なCPUの作り方を解説している。内容はかなり人を選ぶ。電子回路を使ってCPUを組む都合,電子部品や電子回路の知識を要求する。本書内で,基礎的なことも解説しているように見える。全体的に中途半端でこの説明では,電子回路の勉強をしていないと理解は難しいだろう。内容を固くしたくないのか,くだけた文体で書かれている。これをどう捉えるかは読者によるが,自分にとっては読みにくくて,解説も中途半端に感じたので,合わなかった。書籍の冒頭では,実際に電子回路を組むというよりは,読んで作りを理解することが,参考になるというようなことが書いてあった。これを読むだけで理解するというのはハードルが高すぎる。自分で実際に電子回路でCPUを組むというところが興味深いテーマだった。Amazon.co.jp上での評価も高かったので期待していた。いかんせん読者を選ぶ本だった。電子回路の知識がない人,電子回路を組んだことがない人は本書の内容をたぶん理解できない。Amazon.co.jpで過大評価されていると感じた。CPUについて勉強したければ,他書を強く薦める。アルゴリズム&デザインパターン」で存在を知り,気になったので読んだ。書名通り,プログラムが動作する仕組みを解説している。具体的には,以下のような項目について解説されている。それなりに情報の勉強をしていたつもりだが,この本で書かれている内容はあまり知らなかった。普通にプログラミングの勉強をしていたら,学ぶことはないが,しっておくことでプログラミングでも活かせることが多かった。できれば,もっと早くに読んでおきたかった。有用だったのは,以下の章だ。アセンブリ言語からプログラムの本当の姿を知る第1章では,コンピューターの演算を担当するCPUの動作について解説している。いうレジスターがあって,条件分岐や繰り返し,比較,関数呼び出しをどう実現しているのかを解説している。第10章では,C言語のソースコードをアセンブリに変換して,一行一行機械語との対応を示している。関数呼び出しに,スタックを使って,実行前のアドレスに移動したり,スタックを使うため,関数内の変数はスコープを持つなど解説している。グローバル変数とローカル変数のスコープがなぜ違うのかという理由を,メモリー上に格納される領域から理解できるようになった。結論CPUやアセンブリ言語,機械語という視点から,プログラムがどういうしくみで動作しているのかをわかりやすく解説していた。いう情報はなかなか触れる機会がない。できれば,プログラミングを学ぶ最初の方の段階で触れておくと,あとあと良いと思った。個人的には,もう少し詳しい内容が欲しくなった。アセンブリ言語についての知識があると,プログラミング言語の仕組みの理解が深まるように感じたので,アセンブリ言語についてもう少し勉強しても良いと感じた。気負わずに読み物のようによんでみようという趣旨で,50種類にも及ぶ多数のアセンブラを掲載している。最初はかなり簡単で初歩的なところから,始まり徐々にアセンブラの全体像が見えるようになっている。驚かされるのは書籍の分厚さだ。もの長大な文量となっており,通勤中の読書など持ち運び諦めたほうがいい。あまりにも量が多すぎるので,最初の100-200ページまではちゃんと読んでいたがそれ以降は読む気が失くなってしまった。肝心の内容だが,ひたすらにいろいろなアセンブラを読んでみるという内容となっており,ある意味単調となっている。同じような内容でも,アーキテクチャーが変われば変わるということを示していると思うのだが,読む側としては味気なかった。書籍の趣旨にもあるとおり,多数のアセンブラを気負わずに読むということで,リファレンスとしても使いにくくなっている。アセンブリを学ぶという目的には合わないと思った。第2版」のほうが参考になる。結論アセンブラがどんなものかと思って借りた。この本は出版が2017年と比較的新しくて興味を持って読んだ。文量が多すぎであり,しかも内容があくまで読み物という体制をとっているので,リファレンスとしても使いにくく,勉強のための参考書としてはあまり役に立たないように感じた。本書の趣旨通り,アセンブラが好きで読み物として,いろんなアーキテクチャーのアセンブラがどうなっているのか知りたい人が読むと良いだろうと思った。2014年4月号から2016年12月号まで連載された「作りながら学ぶプログラミング言語」という記事をまとめて加筆・編集された内容となっている。プログラミング言語を作るという書籍は既にいくつもあるが,それらは教科書的な内容がほとんどであり,現実に役に立つような発展的な内容が書かれているものはほとんどない。実際に世界で広く使われているプログラミング言語の開発経験者により,デザインの仕方を語られた本自体が少ない。その時点で,この本は希少性が高い。プログラミング言語の開発にはそんなに興味はないが,内部的にどういうことを考えてどうやって作られているかというのには興味があったので読んだ。言語設計の部分はけっこう小難しくてあまり理解できなかったが,以下のように参考になる箇所もあった。はじめにどのように言語をデザインすべきか経験から語れる人など、そうはいないのです。C++」(邦題「C++の設計と進化」、ソフトバンクパブリッシング)があります。この本を読めばC++がなぜこのようになっているのか、何を目指していたのかが分かる貴重な書籍です。C++の設計について書かれている本があることを知らなかったので参考になった。言語処理系が内部でメソッド名などの識別に使っている値で、任意の文字列に対して異なった値が割り当てられる。gdbなどでシンボルという単語を見かけるが意味がわからなかった。この解説で意味がわかった。構造となる場には、探索順序は一意には定まりません。単一継承の問題とは、継承のラインを子得てメソッドなどのクラス属性を共有する方法がないことです。共通のスーパークラスが存在しない場合、属性を共有できず、コピーするしかありません。オブジェクト指向型の単純継承と多重継承で継承時に発生する問題を知れた。基本データ構造ユニオンは同じメモリー領域に対する複数の方での解釈を定義するものです。ユニオンはあまり頻繁に用いられるものではないので、そのようなものをなんに使うのか疑問に持つ人も多いでしょう。使われ方はいくつかありますが、典型的なものは以下の3種類です。条件付き構造体定義メモリー解釈の操作C言語のunionは使いどころがよくわからなかったのだが,使うタイミングが少し良くわかった。都合が良かったものが「semitrivial/csv_parser」というリポジトリーでした。グローバル変数を使っておらず、非常にシンプルで無駄なことをしていません。実際にGitHubからC言語のCSVパーサーを探して,組み込む手順について解説していて参考になった。以下のようなAPIです。いつも秒単位で話が済むとは限らず、1秒以下の情報を取り出す必要があるかもしれません。こちらは秒以下の時刻がマイクロ秒単位で与えられます。MacOSではいまだにclock_gettime()が未実装なのだそうです。C言語での時刻の取得方法について参考になった。ストリームグラフCUIはキャラクターで画面表示を行うので、もう何十年も使われてきているターミナルの中で動作できます。今後もターミナルがなくなることは心配しなくてよさそうです。今回はこちらのCUIを使ってグラフを表示する機能を作ります。いうツールを見つけました。stagは標準入力から数値データを読み込み、それに対して棒グラフを出力するツールです。CUIでのグラフ作成ツールを知れた。結論プログラミング言語を自分で作ることというのはあまりないかもしれない。内部でどういうしくみで,何に気を払って実装されているのか,しっておくと他のことにも役に立つように感じた。技術者の教養として読むのはいいと思った。概要プログラミング道とは,「プログラミングを楽しむ道」のことだ。プログラミング生活六十余年の著者により,大学初年生,プログラミングに興味のある高校生,プログラムが動く仕組みを独習したい大人や初心を忘れた(?)プログラマを対象とした「プログラミングへの招待」のつもりで書かれている。プログラミングの読み物となっている。個人的には,アルゴリズムとかCPUの仕組みなどコンピューターの基本的なところの理解を深めたいなと思って読んでみた。目的とは合っていなかった。CPUとか機械語のことも一応触れられているが,あまり深堀はされていない。初心者向けに書かれているのでしかたないかと思い,初心者の視点に立って読んでみても,いまいちだった。初心者向けに書いてあるということだが,その割にはけっこう細かい内容が書いてある。アルゴリズムだとか,コンピューターの原理だとか。この内容を初心者に読ましても,退屈するのではないかと感じた。5種類しか存在しない極めてシンプルなプログラミング言語で,足し算だけで引き算を実現する方法を解説していた。今までそのようなことを考えたことがなかったので,この発想には驚いた。yと書きます.しかし,日本語ではxとyを足すと書きます.つまり,演算を表す動詞が最後に来るのです*11。引数を並べてから,関数(演算)名を書く方法を後置記法(逆ポーランド記法)と言います.日本語に近いですね。後置記法に基づいた電卓やプログラミング言語があります.これに対して,x+yは演算が真中に書かれるので中置記法,add(x,y)は演算が前に来るので前置記法(ポーランド記法)と呼びます.これは英語に近い.中置記法という概念は知らなかった。英語がポーランド記法,日本語が逆ポーランド記法に近いという見方も新しかった。内容が中途半端であり,プログラムの根本的なところの理解にもならず,初心者にとっても中途半端に難しいので,プログラミングを楽しむどころか,嫌いになってしまうのではないかと心配になった。年寄りが自己満足のために書いたような印象を持ったので,どちらの目的であっても他書をあたったほうがよいと感じた。