いものやま。

雑多な知識の寄せ集め

技術

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その6)

ちょっと間が空いてしまったけど、前回の続き。 1.8 Lucidーーバランスのとれた言語 Lucidでは、応用数学の他の分野で見られるような、静的と動的の間の調和のプログラミングを復元しようとしている。 Lucidは実際には非手続き型言語だが、決して純粋に静的…

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その5)

前回の続き。 1.6 Honest, Folks, We Was Just Funnin’ この数ページで、プログラミング言語に取り組んでいるほぼすべてのコンピュータ科学者を致命的に怒らせただろう。 今や、怒れるカウボーイ達、ウィザード達、伝道師達、技術者達、よろず屋達(Handymen…

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その4)

前回の続き。 1.4 命令型アプローチの問題 近年、プログラミング言語に対する命令型のアプローチは、ますますひどい兆候を示している。 従来の「主流」のプログラミング言語は、これまで以上に複雑な作業に、そして、これまで以上に多くの人々に使用されてい…

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その3)

前回の続き。 なお、かなり意訳。 1.2 命令型プログラミング RMS(二乗平均平方根)プログラムは、PASCALのような命令型言語で書かれたときには、ほぼ同じアプローチが使用されていても、とても異なったものになる。 次のPASCALプログラムは、前節でのLucid…

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その2)

昨日の続き。 1. イントロダクション Lucidはプログラミング言語だが、読者がすでに慣れ親しんでいるプログラミング言語(BASICやPASCAL、あるいはLISPでさえ)とは、まったく異なる。 以下は、有理数を含む計算を記述した簡単なLucidプログラムである。 こ…

「Lucid, the Dataflow Programming Language」を翻訳してみた。(その1)

だいぶ間が空いてしまったけど、以前書いた通り、データフロー言語であるpLucidをいじっていたりする。 この実装をいじりながらコードを読んでいたのだけど、どうにも分からない部分が。 というのも、実装が丸々ifdefで落とされていて、しかも、落とされたコ…

Karabiner-Elementsで英数/かなの切り替えをトグルにしてみた。

Macを使っててちょっと困るのが、英数/かなの切り替えがトグルでないこと。 まぁ、トグルでなくて明示的に指定した方が分かりやすい、という人もいるけど、仕事では(残念ながら)Windowsを使っているので、MacとWindowsで操作が違うのは、けっこう面倒。 あ…

pLucidをいじってみた。(その2)

前回はLucidの処理系であるpLucidについて紹介した。 今回はLucidについて触れていきたい。 Lucidとは? Lucidというのは、前回も触れたとおり、データフロープログラミング言語の1つ。 データフロープログラミング - Wikipedia Lucid (プログラミング言語) …

pLucidをいじってみた。(その1)

最近、pLucidをいじってるので、それについて少しずつ書いていこうと思う。 pLucidとは? pLucidというのは、Lucidというデータフロープログラミング言語の処理系の1つ。 データフロープログラミング - Wikipedia Lucid (プログラミング言語) - Wikipedia 新…

楽譜作成ソフトLilyPondをインストールしてみた。

年初に書いた、今年やっていきたいことの一つの「作曲、音楽理論」の研究。 ぶっちゃけ、ラモーの音楽理論の「不協和音の二重用法」がホントに意味不明で、ずっと止まってたんだけど、ちょっとずつ再開しようかなと。 そのうえでブログを書くときに必要にな…

MacでiPhoneの画面を録画してみた。

iPhoneをいじってるとたまにあるのが、iPhoneの画面を録画したいなぁ、ということ。 例えば、ゲームをやっていて、そのゲームを紹介するため、とか。 けど、iPhoneの画面のスクリーンショットを撮ることは簡単に出来るわけだけど(電源ボタンを押しながらホ…

『OS自作入門』を読んでみた。(その6)

前回はリンカとリンカスクリプトを使ってアドレスの問題を解決した。 これで最初のOSっぽいプログラムは一応完了で、次はちゃんとフロッピーディスクの内容をメモリに読み込んで実行するIPL(Initial Program Loader)を作っていくことになる。 ただ、その前…

『OS自作入門』を読んでみた。(その5)

またまた間が空いてしまったけど、前回の続き。 今回はアドレスの問題を解決していく。 逆アセンブル おさらいで、何が問題だったかというと、ブートセクタはBIOSによってメモリの0x7c00に読み込まれるのだけど、このコードだと先頭が0x0000だと思ってリンク…

『OS自作入門』を読んでみた。(その4)

またまた間が空いてしまったけど、前回の続き。 今日は実際のブートコードの部分を見ていく。 Intel構文とAT&T構文 前回も少し触れた通り、本はNASMに似た筆者作のアセンブラを使っていて、その構文はIntel構文になっている。 一方、自分の使っているGNU as…

『OS自作入門』を読んでみた。(その3)

前回からだいぶ間が空いてしまったけど、続き。 前回は擬似命令を使ってただデータを作っただけだったけど、それではアセンブラを使ったとは言い難いので、今回はちゃんとしたアセンブラを書いてみる。 ちゃんとしたアセンブラのコード と言うことで早速、ち…

『OS自作入門』を読んでみた。(その2)

前回はVimをバイナリエディタとして使って直接フロッピーディスクのイメージを作った。 今回はアセンブラを使ってフロッピーディスクのイメージを作ってみる。 Binutilsのインストール 本ではNASMに似たnaskという著者作のアセンブラを使ってるけど、やっぱ…

『わかばちゃんと学ぶ Git使い方入門』を読んでみた。

ツイッターを見ていたら、社畜ちゃんで有名なビタワンさんの次のツイートが。 閉店ギリギリの本屋に駆け込んで、湊川あい(@llminatoll )さんの「わかばちゃんと学ぶGit 使い方入門」を買ってきた!これからGitを覚える人は是非!うろ覚えで今から復習した…

『OS自作入門』を読んでみた。(その1)

前回、『30日でできる! OS自作入門』を読んでいることをちょこっと書いた。 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件)…

MacでQEMUのビルドをしてみた。

最近、『30日でできる! OS自作入門』を読んでる。 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: マイナビ出版発売日: 2006/03/01メディア: Kindle版この商品を含むブログを見る この本自体はだいぶ昔に買っていたんだけど、分厚いので完全に積…

『熱血!アセンブラ入門』を読んでみた。

『熱血!アセンブラ入門』を読んでみたので、感想とか。 熱血! アセンブラ入門作者: 坂井弘亮出版社/メーカー: 秀和システム発売日: 2015/06/12メディア: Kindle版この商品を含むブログを見る 購入に至るまで この本を初めて見たのは、近くのショッピングモ…

輪行するなら知っておきたいテクニック。

自転車で遠出するなら、覚えておきたいのが輪行。 輪行が出来れば、電車で遠くまで移動してから自転車に乗ることも出来るし、あるいは逆に、遠くまで自転車で走っていって、そこから電車で帰ってくるといったことも出来る。 あまり起きて欲しくないけど、も…

MacにErlangをインストールしてみた。

最近、関数型言語に関してちょっと思うところがあって、いろいろ勉強中。 といっても、モナドとかではなく、並列性に関して。 それについてはまた別の機会に書くとして、今日はそれに関係してErlangをMacに入れてみたので、それについて。 全体の流れ 最初に…

Javaで動画作成ツールを作った話。(その1)

自分はニコニコ動画にいくつかボードゲーム動画を上げてるんだけど、動画を作るときに使っている自作ツールの話を少ししようかなと。 ちなみに、ツールの名前はMSC。 Movie-create-tool by Script and Commandの頭文字をとってMSCーーというのは建前で、実際…

Mac用とiOS用のフレームワークを作ってみた。

以前、強化学習用のニューラルネットワークをSwiftで書いていた。 ここで最後に触れた問題が、これ。 NSKeyedArchiver/NSKeyedUnarchiverでオブジェクトをエンコード/デコードすると、クラス名が(モジュール名).(クラス名)となるため、ある実行ファイルで保…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その8)

前回は○×ゲームをSwiftで実装した。 今日はSarsaComの実装。 なお、Rubyでの実装は、以下を参照: SarsaComクラス ということで、さっそく。 //============================== // TicTacToe //------------------------------ // SarsaCom.swift //========…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その7)

昨日はValueNetworkの保存とロードの実装をした。 (ただ、いろいろ問題があったので、後で修正する予定) これで実際に学習をするために、今日は○×ゲームをSwiftで実装する。 Markクラス まずはマークを表すMarkクラスから。 enumで実装するのも一つの手だ…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その6)

昨日は強化学習用のHMEの実装を行った。 今日はそれらのデータの保存とロードが出来るようにする。 (2016-04-08追記:いろいろ問題があったので、大幅に修正する予定) NSKeyedArchiver、NSKeyedUnarchiver データをファイルに保存し、ロードする一つの方法…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その5)

昨日は強化学習用のHMEの計算を行列で表現した。 今日はそれを使って実際に実装していく。 なお、Rubyでの実装は、以下を参照: GateNetworkクラス まずはゲートネットワークの実装。 //============================== // ValueNetwork //-----------------…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その4)

昨日は強化学習用のニューラルネットワークの実装を行った。 今日はHMEの実装を行うために、同様にHMEの計算を行列で表現していく。 強化学習用のHMEの計算 ここでは、HMEへの入力を 、出力を とする。 また、エキスパートネットワーク の出力を 、パラメー…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その3)

昨日は強化学習用のニューラルネットワークの計算を行列で表現した。 今日はそれを使って実際に実装していく。 なお、Swiftでの行列演算については、以下を参照: ここで定義したMatrixクラス、Vectorクラスを使っていくことになる。 また、Rubyでの実装は以…