正式名称“Compiler”。 アフタヌーンにて連載されていた、麻宮騎亜の漫画。 宇宙から落ちてきた女性たちが騒動を起こし続ける、SFギャグ漫画。 キャラクターが二頭身になったり、麻雀バトル繰り広げたり、やりたいほーだい。 さりげなくOVA化もされている。 主人公を変更した「Assembler 0X」という続編なんぞもある。
コンパイラ (1) (講談社漫画文庫)
Compiler 陰の章&陽の章&Festa&Music clips In Trackdown [DVD]
【compiler】コンパイルを行うソフトウェア。
はじめに Commit Step10 調べたこと・理解したこと ローカル変数管理用の連結リスト周りについて イメージ図 思ったこと はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回はStep10 Commit Step10 github.com 調べたこと・理解したこと ローカル変数管理用の連結リスト周りについて テキスト読んだだけではいまいち理解できなかったり、エラー吐いたりしたところについて、下図の通りにまとめた イメージ図 思ったこと 連結リストに抵抗感がなくなってきた気がする。 ローカル変数の管理方法についてよくわからないなぁと思って、次の日も…
はじめに Commit Step9 調べたこと、理解したこと データ構造の流れ イメージ図 メモ 参考 NodeとCodegen実装の対応を理解 イメージ図 メモ 参考 スタックの伸びる方向について イメージ図 メモ 参考 consume_ident() の実装について コード メモ 参考 『for (int i = 0; code[i]; i++)』のcode[i]でloop終了条件にしていいの? コード メモ 参考 標準エラー出力でデバッグ イメージ図/コード メモ 参考 参考にしたサイト 実装の参考 drawioファイルをブログに貼り付け Draw.io Integrationの背景が暗…
はじめに Commit Step8 調べたこと make コード 実行されるコマンド 理解したこと Makefileの前提知識 なぜこのMakefileでこのコマンドが実行されるのか コンパイルオプション ルールを分解して考える 変数 流れ その他 思ったこと はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回は分割コンパイルとリンク、Step8 Commit Step8 github.com 調べたこと make コード CFLAGS=-std=c11 -g -static SRCS=$(wildcard *.c) OBJS=$(SRCS:.c=.o)…
はじめに Commit Step6 Step7 調べたこと startswith コード 詳細 参考 思ったこと はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回はStep6, 7 Commit Step6 https://github.com/lvlnaga/9cc/commit/0dd18e522522b32fd049d74d5fdd023eddced843 Step7 https://github.com/lvlnaga/9cc/commit/e89c0bbd2f42a5a409211f38822f7d1b8bc6c45b 調べたこと start…
はじめに 調べたこと 関数のプロトタイプ宣言について 参考 空returnについて 参考 strchr を使って特定文字有無のif文 参考 思ったこと マインドマップに書きながら理解 再帰的な処理について 説明の流れについて はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回はStep4, 5 commitはこちら Add *, / and () · lvlnaga/9cc@f1b1a96 (github.com) 調べたこと 関数のプロトタイプ宣言について プロトタイプ宣言とは 「関数の名前」と「引数と返り値の型」だけを先に宣言すること。 なぜ必要か …
はじめに 調べたこと 連結リスト 参考 tokenizeのところ詳細 (1)について (2)について 参考 可変個引数、動的引数 (...)について はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回はStep3まで commitはこちら tokenizerにより空白文字のスキップが可能になった · lvlnaga/9cc@056147d (github.com) 調べたこと 連結リスト リストは「要素」と「次のデータを指し示すポインタ」の2つからなるデータ数珠のようにつながっているデータ構造 リストの場合は要素を探すために先頭からポイントをたどる必要あ…
はじめに 調べたこと パッケージ準備 シェルスクリプト Makefile 思ったこと はじめに こちらをやってみたときのメモを書いていく。 www.sigbus.info 今回はStep1まで 調べたこと パッケージ準備 下記を実行した $ sudo apt update $ sudo apt install -y gcc make git binutils libc6-dev $ sudo apt update でやっていることは ローカルにある「package index file」というファイル内のリポジトリ情報が更新される リポジトリにはいろんなアプリのインストールパッケージが公開され…
インライン展開 関数の呼び出しは呼び出し時と戻り時のジャンプでコストがかかる。基本的にコンパイラーは前後の文脈からある程度最適化してくれる。C#にはないが、.NETでは属性を指定することでインライン展開を指定できる。 [MethodImpl(enum MethodImplOptions) void Somethind(){}
Qiita に書きました。 qiita.com
作詞:有森聡美 作曲:大平勉 編曲:大平勉歌:Drink みんなで歩き出そう 夢 膨らむ未来へと 今すぐにも くじけそうな時も 一人じゃないからきっと がんばれるよ キラキラの夢を 持ち寄って集まろう ジグソーパズルより ゴールときめくはずさ Let's doing 一人より二人 (もっと もっと 膨らませて) Let's doing 二人よりみんな (もっと もっと 大きな夢) 信じるハートがパワーだね どんな着飾っても 夢に夢中の時には かなわないね すごく大人びたり とても綺麗に見えるの 不思議なほど それは その胸に輝く ダイヤモンド そう、その夢達が 光り続けているから Let's …
お久しぶりです。 PyConJPの感想を書くだけのブログです。 そう言っておきながら、今回の記事のタイトルと整合性が取れていないのですが、いま興味持っているネタの起点はPyConJPなんです。 speakerdeck.com こちら、去年のPyConJP2022のセッションです。 たまたま興味持ったセッションでASTを絡めた内容が多く、自分の環境でも試してみたくなりました。 Pythonで同じように試しても良いのですが、業務ではC#を使っているので、C#を題材に同じようにASTに絡めた内容としてコード分析をやってみようかなと思っています。 ただ、大きな問題として私の自宅環境のPCはMacなんで…
C++23から、左辺値参照を返す関数においてローカル変数を直接返すケースがコンパイルエラーとなるようになります。 int& f() { int n = 10; return n; // ng } int main() { int& r = f(); } [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ これは意図された振る舞いであるとはいえ個別の提案によって導入されたものではなく、一見関係なさそうな別の提案の副作用として導入されました。それはP2266R3 Simpler implicit moveという提案で、これはreturn文における暗黙ムーブ仕様を簡素化するものです。 暗黙ムーブ C…
TypeScriptの型付け TypeScriptはJavaScriptに対して型を付与するという思想で仕様が定められています。 TypeScriptでは型を付与する方法として、様々な方法が用意されていますが、どこまで利用するかは費用対効果を考えながら行う必要があります。 any型 最もゆるい型付け function example(args: any){ // argsにhogeが存在するかのチェックはしないのでコンパイルエラーとはならない console.log(args.hoge); } any型を使った場合、TypeScriptの型チェックの恩恵を受けることができません。 any型は型…
最初このツイート見た時、このツイートを引用した引用RTだったこともありリンク先見なかったので読み違いしてた。経験者採るのに随分研修期間長すぎじゃんって思ってた。だってその引用リツイ、「IT人材なら2か月で~」みたいに書いているんだもん。 採用できるのこれ…IT人材として入社した場合、最初の1年半は現場研修に出てもらいます。店舗を1年、物流部門を半年経験してもらって、ニトリグループの業務について学んでもらいます。https://t.co/KEzanXchPp — てろりー (@terurou) 2023年1月23日 まとめ見たら、 togetter.com 記事リンクあった。 xtech.nik…
Goの概要 Rubyと比べたGoの特徴 Ruby インタプリタ言語 動的型付け言語 オブジェクト指向言語 モノリシックアーキテクチャ、モジューラモノリスの中で使われる(RubyというかRails) コードの密度が高く、短く書ける Goと比べてコード行数が半分から1/3くらいになる(らしい) Go コンパイラ言語 静的型付け言語 クラスや継承の概念がないがオブジェクト指向プログラミング(っぽいこと)が可能 構造体やインターフェースをうまいこと使う 正直理解がいまいちなので、ここら辺は別記事でいつか詳しくまとめたい マイクロサービスアーキテクチャの中で使われる クラウドネイティブ言語※1 書いてい…
概要 マイクロカーネルアーキテクチャは別名、プラグインアーキテクチャと呼ばれている。 コアシステムとプラグインの二つのコンポーネントで構成される比較的シンプルなアーキテクチャであり、アプリケーションのカスタムロジックの結合と分離を実現している。 プラグインアーキテクチャの用途は大きく分けて2種類あり、 パッケージ化され、単一のモノシリックなアプリとしてダウンロードされてインストールできるようなアプリケーション カスタムビジネス(国ごとのローカライズが発生するなど)アプリケーション このいずれかで使用される。 今回は前者の意味合いで(ダウンロードして使用するタイプのアプリケーションで)解説する。…
全般 BigQuery データ取り込み クエリ Routine セッション 外部データソースへのクエリ テーブルスキーマ ネスト(STRUCT)され、且つ繰り返しフィールド(ARRAY)のあるスキーマ 検索インデックス BigQuery BI Engine BigQuery Migration Service BigQuery Data Transfer Service データの暗号化・マスキング BigQuery ML アクセス制御 管理 Cloud SQL インスタンス・構成 管理 アクセス制御 Database Migration Service Cloud Bigtable アーキテク…
OJTをするときはタスクが終わったごとに振り返りを行うと、トレーニーが成長しやすいなと感じた。 振り返り方法 タスクが終わりそうなタイミングで振り返り用シートを準備する。 ## うまくできたなと思うことはあるか? ある / ない + どうしてそう思うか ## もっとこうしておけば良かったなと思うことはあるか? ある / ない + どうしてそう思うか ## 見積もり通りに終わったか? 終わった / 終わらない + どうしてそう思うか ## 前回の反省を活かせたか? ※反省をコピー&ペーストで転記する 活かせた / 活かせていない + どうしてそう思うか 次に、タスク完了直後に振り返りシートを渡し…
やっとバグが解決。 あちこち書き換えた結果として動くようになったので、ここ!と特定できている訳ではないけど、もうそこまで追求する気力が尽きた。 ここじゃないかなー、というところはあるので、もうそれでいい。 結果的にとてもシンプルで robust な実装になったと思う。 やっぱりいろいろなコンパイラで確認するのは大事。 そしてコンパイラの気まぐれが憎い。今週の目標だった、9時閉店のスーパーに寄って帰るというのは来週に持ち越した。 まあ週末でもいいんだけど。 積み残しのコーディングがすんなりと終わってくれれば。
ファームウェアエンジニアの中林です。たまにはコンパイラの謎挙動に苦しんだ一幕を取り上げるのも一興、ということで昨日出会ったコンパイルエラーの紹介です。 多分この issue です*1。 助けて詳しい人! github.com 事の発端 何度か当ブログでも紹介している通り、C言語で書かれた Nature Remo ファームウェアのユニットテストは C++ で書いています。 基本的には C++ の高機能なので C でテストを書くより快適です。 一方で C では当然のようにできるけど、C++ ではできないこともあります。 その1つが指示付き初期化です (C++20 から一部仕様に入りました) 。 指…
Kindle Unlimitedをキャンペーンで利用しています(月額980円のところが99円!) で、暇を見つけては物色して色々な本を読んでいます。 昨日、ChatGPTの感想文を書いたわけですが。。。そのときに合わせて読んでたのが以下でした。 ChatGPTが世界を変える (AIライブラリ by 相武AI)作者:相武AIAmazon 米国在住で小説を書かれている方のようですが、ChatGPTを利用者目線で色々と試したことが書かれていました。 Amazonのページにあった目次を以下に転載します。 序文 私とAIの接点 ChatGPTの衝撃 ChatGPTを利用するには AIに小説を書かせてみた…
日本語のRISC-Vに関する一般書籍を全部紹介します。なぜだか家に全部あるんですよ、本屋で見かけた翌日には本棚の本の隙間になぜか出現します。SCPみたいですね。 冗談はさておきAmazonで入手可能なRISC-Vの書籍に関して紹介してゆきます。順番は入門者が読むべき順番です。 ①ディジタル回路設計とコンピュータアーキテクチャ 言わずと知れた計算機アーキテクチャの教科書の名著です。この本ではトランジスタレベルのデジタル回路の基礎から、HDLの書き方、ステートマシンや演算器といった論理回路、アセンブリ言語、そしてコンピュータアーキテクチャに至るまで一貫した内容が含まれています。RISC-V版と銘打…
.table-of-contents { max-height: 30em; overflow-y: auto; } .table-of-contents > li > ul > li > ul { display: none; } .stab { width: fit-content; min-height: 36px; display: flex; align-items: center; white-space: pre-wrap; padding: 3px; margin-bottom: 5px; font-size: 0.875rem; background: #FFF5D6; bo…
はじめに この記事について 以下の記事を読んだ感想というか、ずっと思ってたこととリンクする部分があったのでメモしておきます。 この10年のプログラミング言語の変化 - 西尾泰和のScrapbox それと、前提として、自分は20年以上前に手続き型からオブジェクト指向への転換期を経験していて、Microsoft Windows のプログラミングで Win32 API という C のライブラリと MFC という C++ のライブラリを両方並行して使ってた時代にオブジェクト指向の恩恵をたぶんに受けた実感があるので、オブジェクト指向の否定というよりは、シングルパラダイムにこだわる必要はないんじゃないかっ…
概要 低レイヤを知りたい人のためのCコンパイラ作成入門をやっていたら、M1起因によるエラーが出たので、その解決策を残しておく。 問題 コンパイラ本体の作成で cc -o tmp tmp.s を行った時、以下のエラーが出た。 tmp.s: Assembler messages: tmp.s:1: Error: unknown pseudo-op: `.intel_syntax' tmp.s:4: Error: operand 1 must be an integer register -- `mov rax,123' どうやらM1起因のようだ。 解決策 https://www.sigbus.in…