いものやま。

雑多な知識の寄せ集め

技術

技術書典7 はじめてのサークル参加meetupに行ってきた。

はい、というわけで、技術書典7にサークル参加で申し込んだ。 当選したら、技術書生やす! 技術書典については、以下の公式ページや、自分が一般参加したときのレポートを参照: はじめてのサークル参加meetup 今回行ってきたのは、以下のイベント: 技術書…

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

前回の続き。 2.7 遅延評価 しかし、Iswimの操作的(動的)解釈として、より適切なものがある。 この方法論では、プログラムは実行されると考えるのではなく、プログラムは評価されると考え、その評価は必要に応じて行われるとする。 この評価の方法は、必要…

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

前回の続き。 2.6 Iswimでの呼び出しと束縛 手続き的解釈の適用には注意が必要である。 というのも、そうでなければ、スコープ規則に関して間違いが生じる可能性があるからだ。 特に、グローバル変数を含む関数定義の正しい解釈について注意する必要がある。…

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

前回の続き。 2.4 サンプルプログラム where節の本体が「補助定義」であるという非形式的な考え方に形式的意味論がどう一致しているかを説明するために、前に出てきた次の式を考えてみる: C + A * Z where A = 5; B = 5; C = Z * A + 1 where A = 3; Z = A …

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

前回の続き。 2.2 Iswimの構文 Iswim()という言語の(抽象)構文(syntax)と意味論(semantics)は代数によって完全に定まる。 Iswimファミリはシンプルであり、以下の数段落で合理的で正確な仕様を与えることが出来る。 代数が与えられると、そのシグネチ…

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

前回の続き。 2.1 代数 プログラミング言語についての質問で最もよくされるものの1つは、「その言語にはどのようなデータ型があるのか?」というものである。 言い換えれば、どんな種類のデータがその言語では扱われるのか、ということである。 この質問に対…

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

だいぶ間が空いてしまったけど、久々に。 2. ISWIMと代数 Lucidは定義型言語(definitional language)である。 すなわち、Lucidプログラムの文(statement)はストリームとフィルタを定義する式であり、格納場所を更新するコマンドではない。 Lucidはこの意…

TeXをMarkdown記法でも使ってみた・改。

以前、をMarkdown記法で使う方法についての記事を書いた: この中で、pre要素を使うというHackをしたわけだけど、1つ問題があった。 それは、Markdown記法の```を使うと、pre要素内のの数式が正しく出なくなる場合がある、というもの。 回避策として、pre要…

階段昇降問題を解いてみた。

事の起こりは、以下のツイート: 長男がいきなり「3歩進んで2歩下がる」と言って、次男が「ってことは、1歩しか進まないよね」と言ったので、「15段の階段で毎日『3歩進んで2歩下がる』を繰り返したら、何日目に15段目に着くか?」と聞いてみた。予想通りに…

ファミリーテックIoTLTに行ってみた。

この前の技術書典6で買った親方Projectさんの「Onestop 勉強会」を読んで、勉強会に行きたい気持ちが最近高まってる。 そんな中見つけた勉強会の1つが、IoTLTという、IoT縛りの勉強会(LT会)。 一応、自分は組込みの会社で働いていて、マーケティングではIo…

技術書典6に一般参加で行ってきた。

4/14(日)に池袋で技術書典6があったので、一般参加で行ってきた。 技術書典って何? 一応、簡単に技術書典の説明。 技術書典は、技術書オンリーの同人誌即売会で、いろいろなサークルが様々なジャンルの技術書を作って持ち寄り、売り買いするイベント。 20…

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

ちょっとRubyでGUIいじれないかなぁと思って、MacにFXRubyを入れてみたので、そのメモ。 FXRubyとは FXRubyとは、FOX toolkitというクロスプラットフォームなGUIツールキットの、Rubyバインディング。 クロスプラットフォームなGUIツールキットでRubyでも使…

『RubyでつくるRuby ゼロから学びなおすプログラミング言語入門』を読んでみた。

前から気になってた『RubyでつくるRuby』をこの前の技術書展5で購入して読んだので、その感想とか。 RubyでつくるRuby ゼロから学びなおすプログラミング言語入門作者: 遠藤侑介,hirekoke出版社/メーカー: ラムダノート発売日: 2017/03/31メディア: 単行本(…

「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を覚える人は是非!うろ覚えで今から復習した…