ポエム

プログラミングパラダイムとは制約をかけることだという見方

ふと感じたのだが、プログラミングパラダイムというのは、プログラムに制約をかけることなのではないか。 基本的に、現代で書かれるプログラムはどれも非常に長く複雑で、人間の脳みそに収まりきらない。実行パスをトレースできない規模のものはザラにあるし…

メモリ上での配置に関して、多次元配列と構造体の配列の比較

最近少しアライメントのことを考えているが、古めの書籍だと多次元配列のメモリ配置の説明が必ずと言っていいほどされていて、メモリアクセスが律速になる場合(殆どのケースだ)には次元の順序に十分注意せよと書かれている。 キャッシュ効率のことなどを考…

コードの美しさについて

コードが綺麗とはどういうことか、の基準は人によって異なると思う。しかし例えば以下のような関数があまり綺麗ではないという気持ちは、共有できるのではないだろうか。 void func(int N, double*** v1, double*** v2, double** a, double** b, int* c, int…

現代のC++

C++17での機能追加について、ネット上では「項目一覧見ただけで読む気失せる」「入門不可能」「闇」「誰も使いこなせない」「絶対に使いたくない」などと盛り上がっている。 だが私は一概にはC++はどんどん初心者を見捨てているとは言えないと思っている。C+…

座標ベクトルと汎化について

私の書くプログラムでは、趣味でも仕事でも、低次元(大抵は2か3次元)でのベクトルを扱うことが多い。そうなると普通は座標ベクトルを意味する構造体を作って管理するだろう。

Rustを触っている

先週Rustを触っていた。まだ手に馴染んでいないので少し不自由さを感じるが、慣れるまでの辛抱だろう。実際は去年くらいに一度インストールしてチュートリアル程度は済ませていたのだが、説明を見て言われた通りのコードを書く以上のことはしていなかった。…

計算行為と物理の話

先日大学で開かれていたセミナーに出席していたのだが、非常にわかりやすく面白く、楽しい時間を過ごすことができた。そこで聞いた話から思い出したことがあった。

意味とニューラルネットワーク

まず初めに、私はその手の技術や学問分野の専門家ではないし、体系立った学習も行っていないことを告白しておく。つまり以下の文章は素人の妄想だ。 最近Google翻訳にニューラルネットが導入されたようで、いろいろな文章が翻訳にかけられては様々な人が意見…