正式名称“Compiler”。 アフタヌーンにて連載されていた、麻宮騎亜の漫画。 宇宙から落ちてきた女性たちが騒動を起こし続ける、SFギャグ漫画。 キャラクターが二頭身になったり、麻雀バトル繰り広げたり、やりたいほーだい。 さりげなくOVA化もされている。 主人公を変更した「Assembler 0X」という続編なんぞもある。
コンパイラ (1) (講談社漫画文庫)
Compiler 陰の章&陽の章&Festa&Music clips In Trackdown [DVD]
【compiler】コンパイルを行うソフトウェア。
はじめに string と byte のキャスト最適化 1. map のキー指定のためのキャスト 2. string を byte 毎に処理するためのキャスト 3. 比較のためのキャスト memclr による配列ゼロクリア最適化 ガベージコレクションのマークスキャン回避 おわりに 参考文献 はじめに SRE の izzii (𝕏: @ahneahneahne) です。今回をもって「Go コンパイラのお勉強」と題した連載ブログが完結です!仕事の話とは直接関係がないネタだったので、書く内容に悩むということはなく気持ちよくかけました。さて、今回は「配列の効率的な利用」と題して golang/go C…
はじめに インライン展開 インライン展開とは 高階関数のパフォーマンスが落ちる例 インライン展開の制約 エスケープ解析 エスケープ解析とは 高階関数のパフォーマンスが落ちる例 さいごに 参考文献 はじめに 先々月にも Go コンパイラの最適化に関するブログ記事を書いたのですが、多くのブックマークを頂けて感謝です! SRE の izzii です。 github.com 上のドキュメントを参考にしつつ Go コンパイラの最適化に関する記事を連載していきます。本記事は 2 本目です。 [第 1 回] Goコンパイラのお勉強(1)~ゼロ幅の型によるメモリ利用の最適化と未定義動作~ [本記事] Goコン…
はじめに メモリアロケーションの回避 ゼロ幅の型(=ゼロサイズの型)とは アドレスの同一性に関する未定義動作 この最適化が有効な場面 1. map 2. chan 3. interface の実装 おわりに 参考文献 はじめに こんにちは。SRE の izzii です。 最近は某フィットネスゲームが習慣だったり、ボルダリングを再開したり、登山シーズンが到来したりと心身ともに調子が良いです。 さてつい先日、Go のコンパイラによる最適化について勉強したまとめを社内で共有したところ、メンバーが面白がってくれたため、細かいところを自分の手で触ってみたり、Go Forum で質問を投稿したりした上で記…
Qiita に書きました。 qiita.com
かんたんな自作言語のコンパイラをいろんな言語で書いてみるシリーズ 24番目の言語は V(V言語、vlang) です。 V を触り始めて1週間くらいの人が、理解は後回しにしてとにかく動くものを作るぞ、という方向性で書いたもの(そのくらいのノリで気軽に書けるコンパイラです)。 V のバージョンは 0.3.3(weekly.2023.14)。 できたもの github.com 動かし方の例 $ echo ' func add(a, b) { return a + b; } func main() { call add(1, 2); } ' | bin/mrcl_lexer | bin/mrcl_pa…
※初歩的な勘違いをしていたのでメモ 次のコードは動かない といってもリンクができないだけで分割コンパイルはできる(できてしまう) #pragma once namespace Hoge{ typedef float hoge; hoge setHoge(); void getHoge(hoge value); }; #include <iostream> #include "hoge.hpp" using namespace std; using namespace Hoge; hoge setHoge(){ return ((hoge)10); } void getHoge(hoge val…
インライン展開 関数の呼び出しは呼び出し時と戻り時のジャンプでコストがかかる。基本的にコンパイラーは前後の文脈からある程度最適化してくれる。C#にはないが、.NETでは属性を指定することでインライン展開を指定できる。 [MethodImpl(enum MethodImplOptions) void Somethind(){}
作詞:有森聡美 作曲:大平勉 編曲:大平勉歌:Drink みんなで歩き出そう 夢 膨らむ未来へと 今すぐにも くじけそうな時も 一人じゃないからきっと がんばれるよ キラキラの夢を 持ち寄って集まろう ジグソーパズルより ゴールときめくはずさ Let's doing 一人より二人 (もっと もっと 膨らませて) Let's doing 二人よりみんな (もっと もっと 大きな夢) 信じるハートがパワーだね どんな着飾っても 夢に夢中の時には かなわないね すごく大人びたり とても綺麗に見えるの 不思議なほど それは その胸に輝く ダイヤモンド そう、その夢達が 光り続けているから Let's …
背景 wasm runtimeを作る選択肢としてllvmのチュートリアル(カレイドスコープ作ってみよう)を読んでいたら知らない概念が出てきたのでメモ.wikipediaを参照となっていたのでそこからスタート.(以後SSA) llvm.org japan語で検索するなら 静的単一代入 ssa が良さげ. wikipedia 曰く In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate repres…
先日AY2024-Term3を終えて卒業要件単位数を満たすことができました。今はまだ卒業申請中なので「仮」としている。ディプロマを手にするまでは実感が湧かなそうだけれど日に日に記憶が薄れていくので振り返りを。 清々しい気分で見物した今年の牡丹 目次 CS 2204 Communications and Networking CS 2301 Operating Systems 1 CS 3307 Operating Systems 2 CS 4402 Comparative Programming Languages CS 4407 Data Mining and Machine Learnin…
Javaの概要 JavaとTypeScriptの比較 Springとは/Spring Bootとの違い Javaの概要 https://qiita.com/KenyaSaitoh/items/22f32b9d7aea5844d77 Javaの言語特性(抜粋) プラットフォーム非依存の言語 Java Virtual Machine JVMとは、LinuxやWindowsといった様々なOSに対応したJavaプログラムの仮想的な実行環境 Javaは、コンパイル型言語の一種である 通常コンパイラによって機械語に一括翻訳し、生成したバイナリファイルを実行することで、プログラムが動作する Javaは機械語…
ChatGPTに説明してもらう。 この文章は、私、ChatGPTが生成しました。私はOpenAIによって開発された人工知能言語モデルです。与えられたテキスト入力に基づいて、知識とパターンを活用して文章を生成します。 Rocky Linuxのインストールと作業スペースのセットアップ手順について簡単に述べます。 インストールメディアとインストール メディア AlmaLinux OS - Forever-Free Enterprise-Grade Operating System Download Rocky | Rocky Linux これらのリンクは、AlmaLinuxとRocky Linuxと…
この記事では、Scala初心者がプロジェクトを作るときに分かりにくい(であろう)ポイントを埋めようというものです。 こんな記事を読んだ。 trap.jp 普段Rustを書いている人がScalaを書いてみたという内容の記事で、普段Scalaに振れていない人の視点があってとても良かった。普段我々はScalaを書きすぎているので、初心者がどこでハマるのか?初学者はどのようなポイントを見ているのか?といったことがわからないのだ。 そこでこの記事では、上掲の記事を参考にしつつ、普段自分がScalaプロジェクトを作るときどのようにしているかを説明しようと思う。 プロジェクトを作る 最低限必要なもの sbt…
はじめに こんにちは。昨年の11月にYappliへ入社したしがないサーバーサイドエンジニアの佐野(@Kiyo_Karl2)です。 自分はYappliに入社するまでGo言語を利用した経験が無く、言語仕様についての理解がまだ浅いと感じる部分があるなと思っています。 そのため、今回はGo言語の最大の特徴でもあるGoroutineについてまとめてみました。 本記事は、4本の連載記事の1本目となります。 Goの並行処理入門-Goroutine基礎編 ←今ここ Goの並行処理入門-syncパッケージ編 Goの並行処理入門-channel編 Goの並行処理入門-select編 対象読者 Go言語の基礎はわか…
Effective C# 6.0/7.0作者:Bill Wagner翔泳社Amazon ※2024/4月現在、C# の最新verは12であることに注意 C#をより良く書いていくためのtips集。細部的かつ具体的なtips集のため、なかなかスイスイと読んでいくのは難しい。もう少し抽象度の高い記述、コンセプト化があると読み進めやすいだろうなと思った。ただ、苦労しながら読んでいくうちに、筆者の一貫した価値観といったものを感じ取れ、中級以上を目指すための適切な心構えを感じ取ることができた。まとめると、抽象的な学びは下記の通り。 ■本書のメッセージを抽象化して理解すると 歴史のある言語なら、同じ目的を達…
前回の記事では、Rubyの特殊変数について書きました。 naokirin.hatenablog.com その中で、コマンドラインオプションで変更される変数も紹介しました。 今回は、コマンドラインオプション自体をまとめてみます。 このページの内容は、Ruby 3.3.0での情報をもとにしています。 挙動変更 オプション 説明 補足 -0数字 入力コードセパレータ($/)を8進数で指定する -00 : パラグラフモード($/=""と同じ)-0777 : ファイルの内容を一度ですべて読み込む($/=nil) -a 自動スプリットモードをONにする。ONになると、各ループの先頭で以下が実行される$F …
Ask Epic:Verse回答祭りの延長戦です。今回紹介する2つの質問は「この機能は採用予定がありますか?」「ないです。何故なら……」という物で、コーディングにおいて直接役に立つ物ではありません。とはいえ、どちらの質問もVerseの型システムに深く関わる物で、Verseを理解する助けになると思います。 質問の意図も、回答の意図も、Varseの型システムについての理解が必要ですが、解説を厚めに書いているので、頑張ってください(そして土屋が役を間違ってたり仕様を誤解していたりしたら教えてください!)。 Verseの型システム、特にサブタイプ(部分型)についてはこちらを参照してください。 zenn…
前回の記事では、ECS自体の使いどころやそもそもなぜ高速化するのかという点について書きました。 edom18.hateblo.jp 記事の中で紹介した動画はTextMesh Proの文字を利用して大量に文字を空間に表示するというものでした。 こんなやつ↓ 文字を表示するMeshをQuadのものに統一してBatch Group化の効率を上げて描画してみたら、80,000文字でも余裕で60FPS以上出た。プロファイラ見ると250FPSくらいの速度出てる。#Unity #ECS pic.twitter.com/yNcbk69Ukd— edom18@XR / MESON CTO (@edo_m18) …
3行まとめ 現在開発が進むGCC 14では、IA-64のサポートが含まれないことがわかりました。
プロパティが誕生した背景 オブジェクト指向の中で重要な考え方として「カプセル化」というものがあります。 カプセル化とは、データとそれを操作するメソッドを一つのモジュールとしてまとめることであり、 データはそのメソッドを通して操作するようにしなければいけません。 そのため、オブジェクト指向プログラミングでは、 フィールドとその値を取得・設定するための Getter および Setter を作成し、 フィールドは private にして外部から見えないようにすべきです。 これを単純に実装すると、例えば次のようなコードになるでしょう。 class Person { private int age; …
取締役CTOの小竹(aka tkmru)です。 ディスアセンブルを妨害するアンチディスアセンブルという耐タンパ性を高めるための技術があります。 本記事では、32ビットのARM環境(以下、ARM32)で有効なアンチディスアセンブルのテクニックを紹介します。 静的解析を妨害するアンチディスアセンブル リバースエンジニアリングの方法の1つに、バイナリをディスアセンブル(逆アセンブル)した結果を読み解く静的解析があります。 ディスアセンブルというのは、バイナリを機械語からアセンブリ言語に変換することです。 静的解析では、アセンブリ言語の命令を読み解くことで、プログラムの挙動を明らかにします。 アンチデ…
※本記事は、ChatGPTによる意訳+翻訳を活用し、レイアウト調整したものです。 ※感想は、オリジナルです。 原文 意訳+要約 NodeJSは具体的にどのようにV8エンジンを使っているのですか? ChatGPTへのQA Q:V8エンジンが出る前は、何を使っていたのでしょうか? Q:Node.jsとV8エンジンの人気には、相関関係があるのでしょうか? 感想+雑記 原文 How exactly does NodeJS use the V8 engine? - DEV Community 意訳+要約 NodeJSは具体的にどのようにV8エンジンを使っているのですか? Node.jsは、V8エンジンを…
2024年4月25日(木)19時から、東京都港区六本木のSmartHR Spaceにて、「RubyKaigi 2024事前勉強会 ── 初参加でもこれで安心!」を開催します。 昨年はSmartHR社内のみを対象に行った事前勉強会を、今年はゲストにRubyKaigiチーフオーガナイザーの松田明さんをお招きし、公開で行います。 本イベントは、RubyKaigi 2024にスポンサーとして協賛する、株式会社SmartHR主催の非公式イベントです。 初心者のためのRubyKaigi入門 松田さんには運営側からのメッセージとして、「初心者のためのRubyKaigi入門」と題し、当日までの予習のしかた、タ…