2020-03-01から1ヶ月間の記事一覧

ocamllexとocamlyaccで電卓をつくる (OCaml)

はじめに ocamllexとocamlyaccというツールを使って電卓をつくります。作ろうと思ったのはTaPL本の第4章で出てくるプログラムを理解するのに良いかなと思ったからです。 型システム入門 −プログラミング言語と型の理論−作者:Benjamin C. Pierce発売日: 2013…

OCamlで"Hello, World!"を出力する

はじめに Rustを学んでいると、どうしても型安全性を理解したくなり、積ん読していた「型システム入門*1」を読み始めました。気長に読み進めていくと思います。 型システム入門 −プログラミング言語と型の理論−作者:Benjamin C. Pierce発売日: 2013/03/26メ…

ManuallyDrop::takeについて調べたのでまとめた (Rust)

はじめに MaybeUninitのassume_initメソッドについて調べたのでまとめたの内容と少し被っています。Rust 1.42でStabilized APIsになったManuallyDrop::takeについて調べたのでまとめました。 ManuallyDrop構造体 ManuallyDrop構造体はコンパイラに自動で値の…

アドレスバーで「いらすとや」の素材検索をする方法 (Vivaldiウェブブラウザ)

はじめに Vivaldiウェブブラウザを知っていますか?元Opera Software社の創業者の1人でCEOであったヨン・テッツナーさんと同社でエンジニアやマーケターをされていた冨田龍起さんが共同創業したVivaldi Technologies社のブラウザです。 私がVivaldiウェブブ…

mountコマンド周りの整理

はじめに 今まで何となく使っていたmountコマンドについて、理解している部分やよくわかっていない部分を整理したいなと思い書きました。作業環境はMac上のVirtualBoxで動かしているCentOS8です。 ファイルシステム Unixシステムでは全てのファイルは/をルー…

MaybeUninitのassume_initメソッドについて調べたのでまとめた (Rust)

前に書いたMaybeUninitで初期化していない参照を扱う (Rust)で気になっていたassume_init()を調べたメモです。 気になっていた部分は下記です。 pub unsafe fn assume_init(self) -> T { intrinsics::panic_if_uninhabited::<T>(); ManuallyDrop::into_inner(se</t>…