移植性が(ほとんど)あり性能問題が無い(かもしれない)、負の値に対応した算術右シフトのCコード

普通は、自分のマシンでどのようなコードが生成されるかを確認して、うまくいっていればそれで良しとする所ですが、右シフトは凝ったコードを書こうとするCプログラマにとって悩みの種です。しかし、手元の環境( FreeBSD clang version 3.4.1 )で、次のよ…

SICP的な状態を共有する複数のクロージャをJavaScriptでどう書くか

某展示会の学術系ブースで、このようなSICP的な状態を共有する複数のクロージャをJavaScriptで書きたいわけだが、"use strict" var [getVal, setVal] = (function () { var v return [function () { return v }, function (new_v) { v = new_v }] })() setVa…

「Trusting Trust」攻撃に対抗する

シュナイアーさんによるblogエントリ( https://www.schneier.com/blog/archives/2006/01/countering_trus.html )は、もう10年も前ですので、その世界では特に新しい話題というわけではないようですが、私が知ったのは今年のはじめのことでしたので*1、この…

POSIXとのつきあいかた

コンピュータ関係の技術的なものや技術的でないもの(標準規格とかいったようなものの半分は技術仕様ですが、もう半分は業界政治で出来ていると言えるでしょう)との「つきあいかた」にはいろいろあります。私のこれまでの経験などから、POSIXとのつきあいか…

numo-lapack というブロジェクトを作りました(始めました)

numo-lapack というブロジェクトを作りました(始めました)。 https://github.com/metanest/numo-lapack Numo::Linalg( https://github.com/ruby-numo/linalg )からのフォークをベースに、column-major ←→ row-major 相互の変換をライブラリ側では行わな…

同名だが(違う場所にあって)異なるダイナミックリンク(共有)ライブラリの問題(適切な解決法を求む)

FreeBSDにおいて、プログラムの起動時に次のようなエラーで起動に失敗することがあります。/lib/libgcc_s.so.1: version GCC_4.6.0 required by /usr/local/lib/gcc48/libgfortran.so.3 not found(GCC に gcc-4.8 を使っている場合)原因は、libgcc_s.so.1 …

てすてす

てすてす

「ISLISPを使うべきでないたった1つの理由」に関して

「ISLISPを使うべきでないたった1つの理由」( http://d.hatena.ne.jp/Isuzu_T/20130623/1372003378 )が誤解している点について、簡単にまとめておこうと思います。 要点 上記はてなダイアリーから引用しますが、 マクロは,実行準備時に展開される,いかな…

crubyのFloatにFast inverse square rootを(モンキーパッチで)追加する話

Fast inverse square root自体については「30のプログラミング言語でFast inverse square rootを実装してみました!」( http://itchyny.hatenablog.com/entry/2016/07/25/100000 )を参照してください。せっかくの高速な手法ですから、高速な実装を考えてみ…

4004のブートストラップキャパシタ

この記事で言及する「ブートストラップ」は、電気(電子)回路の技法のそれであり、コンピュータの電源投入時やリセット時などの起動シーケンスのことではありません。 (回路技法の)ブートストラップとは 既にご存じの方は飛ばしてください。以下の2つの回…

「ゲーム性」という語の(もしかしたら最古の)用例

ここにスキャンして載せたのは、「物理の散歩道」シリーズという単行本のタイトルで知られる、『自然』誌の「ロゲルギスト」による連載エッセイの一部で、同誌19巻6号(1964年6月号)「コントロールを楽しむゲーム」、筆者はロゲルギスト I2(今井功先生)か…

情報処理学会発足の頃の話

これはハードコピーを見せたほうがインパクトがある、だろうと判断して持っていったところ、興味を持っていただけたのですが、.@ksmakoto さんからこんな文献を見せていただきました。情報処理のvol1, no.1、つまり創刊号に載ってる論文。著者は、工業技術院…

Gauche の util.stream の stream-delay はなぜあるのか、どういう場合にどのように使うものなのか?

All problems in computer science can be solved by another level of indirection. (David John Wheeler)But that usually will create another problem. これは、デビッド・ホイーラーさん*1(wikipedia:デビッド・ホイーラー)による格言ですが、遅延デ…

Macr055で順列の生成

続き。 http://parametron.blogspot.jp/2015/04/christopher-stracheygpm_27.html にある、順列の生成。{m55_define|p2|$1$2$3 }{m55_dnl} {m55_define|p3|`{p2|$1|$2|$3}{p2|$1|$3|$2}'}{m55_dnl} {m55_define|p4|`{p3|$1$2|$3|$4}{p3|$1$3|$2|$4}{p3|$1$4|…

Macr055でNクイーン

前回の4クイーンを元に一般化して「マクロを生成するマクロ」によるNクイーン問題( http://parametron.blogspot.jp/2015/04/christopher-stracheygpm.html )。エスケープが妖しいことになってて、もしかしたら無駄な展開とか起きてるかもしれませんが、一…

Macr055で4クイーン

カレンダーは面倒そうな割にマクロ内で完結しなくてあまり面白くなさそうだったので、その次の http://parametron.blogspot.jp/2015/04/4.html 4クイーンから。{m55_define|1+|`{1|2|3|4|5|6|7|8|9|10| {m55_define|1|$$$1}}'}{m55_dnl} {m55_define|1-|`{-1…

Macr055でクリスマスの詩

次の http://parametron.blogspot.jp/2015/03/christopher-stracheygpm.html の記事に移って、クリスマスの詩。 "$:" が10番目の引数に置換されるようにM55を改造。文字と文字コードの相互変換は chr と ord という名前の関数とするのが定番ですが、GNU awk …

Macr055でアッカーマン関数他

次の http://parametron.blogspot.jp/2015/02/christopher-stracheygpm_22.html の記事に移って、アッカーマン関数他。アッカーマン関数{m55_define|1+|`{1|2|3|4|5|6|7|8|9|10| {m55_define|1|$$$1}}'}{m55_dnl} {m55_define|1-|`{-1|0|1|2|3|4|5|6|7|8| {m…

Macr055で二進化他

次の http://parametron.blogspot.jp/2015/02/christopher-stracheygpm_8.html の記事に移って、二進化他。二進化{m55_define|1+|`{1|2|3|4|5|6|7|8|9|10| {m55_define|1|$$$1}}'}{m55_dnl} {m55_define|1-|`{-1|0|1|2|3|4|5|6|7|8| {m55_define|-1|$$$1}}'}…

Macr055でフィボナッチ他

次の http://parametron.blogspot.jp/2015/02/christopher-stracheygpm.html の記事に移って、フィボナッチ他。フィボナッチ数{m55_define|1+|`{1|2|3|4|5|6|7|8|9|10| {m55_define|1|$$$1}}'}{m55_dnl} {m55_define|1-|`{-1|0|1|2|3|4|5|6|7|8| {m55_define…

Macr055でハノイの塔

引き続いて http://parametron.blogspot.jp/2015/01/cristopher-stracheygpm.html にある「ハノイの塔」。(ハノイの塔は高機能テキストマクロプロセッサの標準課題らしく m4 にも hanoi.m4 というテストサンプルが付いています) {m55_define|1-|`{-1|0|1|2…

Macr055で基本演算

拙作のテキストベースマクロプロセッサMacr055( https://github.com/metanest/macr055 )で、和田先生のブログにあるマクロの例題( http://parametron.blogspot.jp/search/label/Christopher StracheyのGPM )をやってみたので、情報共有などのため記録と…

『アポロ計画でプログラムコードを開発した女性エンジニア「マーガレット・ハミルトン」がソースコードの隣に立っている写真』について

「コーディング教育」とか言われるようになってきたためか、最近時々バズるこの話題について。マーガレット・ハミルトンさんが、グレース・ホッパーさんやフラン・アレンさんとともに、偉大なコンピュータ黎明期のパイオニアのお一人であることは確かですし…

チューリングマシンはどう偉大なのか、チューリングはどう偉大なのか

現代哲学キーワード (有斐閣双書キーワード)作者: 野家啓一,門脇俊介出版社/メーカー: 有斐閣発売日: 2016/01/14メディア: 単行本(ソフトカバー)この商品を含むブログを見る こちらの本を先日買いました。我々計算機屋などが煙に巻かれがちな哲学のキーワ…

OS X で NASM を使っている人は、バージョン 2.11.08 を回避してください

こちらのバグ、Bug 3392306 - Issue with relative addressing and data section ( http://bugzilla.nasm.us/show_bug.cgi?id=3392306 )のために、OS X で NASM 2.11.08 はまともに使えません。Homebrew を使っている場合は nasm21106 で 2.11.06 が入りま…

松屋ジェネレータジェネレータによる、よりカオスなメニューの生成

この記事は(略 松屋の思い出 学生時代、東小金井駅前の松屋ができる前から、武蔵小金井の松屋まで歩いて行ってはよく食べていたものでした。食券制に慣れてしまいうっかり宝華で無銭飲食(勘定忘れ)をやりかけたことが一度あります。ですが国分寺ではスタ丼…

温故知新話

この記事は Independent Advent Calendar 2015 の記事です。古い本を読んでいると、ひょんな記述に出会うことがあります。そんな話をひとつ。高橋秀俊先生編の岩波『パラメトロン計算機』という本があります( http://www.iwanami.co.jp/.BOOKS/00/7/0058200…

Rubyのファイバーは遅いか?

この記事は Independent Advent Calendar 2015 の記事です。ruby fiber で検索すると「遅い」というサジェストが出てきたりするようですが、実際にそれほど重いものでしょうか?そもそも比較対象がよくわからない点もありますが、コルーチン的な「並列には動…

マクロプロセッサ(の自作)のすすめ

「マイクロプロセッサ自作のすすめ」、ではありません(宣伝 http://tatsu-zine.com/books/fpga )この記事は Independent Advent Calendar 2015 の記事です。 前提 杉浦 K. さんによる「m4 チュートリアル」や、拙作「M4入門」といった、テキストマクロプロ…

Visulan、その可能性

この記事は Independent Advent Calendar 2015 の記事です。Visulan 自体の解説については id:dagezi さんによる「マイナー言語 Advent Calendar 2013」の参加エントリー「Visulanを実装している話」( http://dagezi.hatenablog.com/entry/2013/12/15/04042…