タグ コンパイル時
人気順 5 users 50 users 100 users 500 users 1000 usersそもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか
遠きに行くには必ず邇きよりす.高きに登るには必ず卑きよりす.何事にも順序というものがあります.Rust の学習もそうです. そこで,前提知識がほぼ無い状態から Rust を学ぶときに,どんな順序が良いのか,考えてみました. コンパイル時と実行時の区別. Rust を学ぶとき,何がコンパイル時に起こって何が実行時に起... 続きを読む
マイクロソフト、次の.NET 7にネイティブコンパイラを搭載する見通しを明らかに
マイクロソフトは現在開発中のフレームワーク「.NET 7」で、ソースコードからターゲットプラットフォームに対応したネイティブバイナリをコンパイル時に生成するAOT(Ahead of Time)コンパイラを搭載する見通しだと、「Announcing .NET 7 Preview 3」で明らかにしています。 AOTコンパイラ、すなわち事前コンパイラとは... 続きを読む
JITとコードの暖気の実体 - #chiroito ’s blog
どうも、OpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルに... 続きを読む
二分木 - Rustではじめるデータ構造とアルゴリズム(第1回) | 俺とお前とlaysakura
Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。 しかし一方で、自分で多少複雑なデータ構造を定義し... 続きを読む
定数配列がからんだ定数畳み込み最適化 - Qiita
はじめに 配列を定数(const)として宣言した場合や、事実上定数とみなせる場合、コンパイラが定数畳み込み最適化をできるか確認する。 定数畳み込みについて コンパイラの最適化には様々なものがあるが、その最も簡単なものに「定数畳み込み」がある。これは、コンパイル時に定数であることがわかっている式を単純化する... 続きを読む
TypeScriptの型でなんかすごくがんばる - エムスリーテックブログ
エンジニアリンググループの冨岡です。 先日公開した以下のTypeScript用DIライブラリを公開しました。大きな特徴として、解決するために不十分な依存がある場合にコンパイルエラーになるようになっています。 github.com www.m3tech.blog このコンパイル時の型チェックの実現には、TypeScriptにおける様々な型レベルのテ... 続きを読む
kapt上でのコード生成をテストするkompile-testingのご紹介 - Quipper Product Team Blog
@hotchemiです。みなさんは、やっていますか? 今回は、業務とは関係ない趣味で作ったkompile-testingの話をします。 概要 Googleが開発しているcompile-testingというツールがあります。これは、Javaのコンパイル及びAnnotation Processingというコンパイル時にAnnotationのメタ情報を元にコードやファイル生成をする仕... 続きを読む
自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去る... 続きを読む
JSを事前コンパイルするPrepackを試してみた - Qiita
ゴールデンウィークの最中に、Facebookから「 Prepack 」が公開されました。 PrepackはJavaScriptのソースコードを最適化するツール。計算可能なことはコンパイル時にしてしまうことで、実行時の性能向上ができます。 公式サイトのコード 適用前のコードがこれだとしたら ( function () { function hello () { return 'hello' ; } ... 続きを読む
PPAPで学ぶDaggerによるDI - きしだのはてな
Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。 https://google.github.io/dagger/ 依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。 基本的なオブジェクトの定義 I ... 続きを読む
Swift で Phantom Type (幽霊型) - Qiita
社内の「Scala 勉強会」で Phantom Type (幽霊型) という厨二心をくすぐる感じのデザインパターンを教えてもらったので、同じことを Swift でもやってみました。インスタンスの状態を変数ではなく 型パラメータ として持つことで、状態チェックを実行時ではなく コンパイル時 に行えるという優れものです。 class Status{} class NotReady: Status{} ... 続きを読む
elixirのrequire, import, use
pythonもSchemeも中途半端な状態で別の言語に手を出すなどアレですが、elixirとかちょっとぺろぺろしたくなるのでやっています。 んで、私はお脳が足りなくてrequire, import, useがごっちゃになりがちで毎回調べてるのでメモ。 ここに載ってるし、本文とか転記する程度。 document elixirにはマクロ機能があってコンパイル時に実行・展開されます。 で、コンパイルおよ... 続きを読む
Compassで書きだすCSSファイルを軽量化する - to-R
Compassは便利な半面、書きだされるCSSのサイズが非常に大きくなってしまうことがあります。設定を変更することで書きだされるCSSファイルの容量を削減することが可能です。 Step1.圧縮する コンパイル時に圧縮オプションを指定することで改行や空白を取り除いた形で書きだしてくれます。config.rbに以下のコードを追加するだけで圧縮できます。 output_style = :compress... 続きを読む
JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのはてな
lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできますが、ぼくはlombokを導入するべきだと考えて、lombokを使うようにしました。このとき「lombokを導入するべき」と考えた理... 続きを読む
JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 - きしだのはてな
lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできますが、ぼくはlombokを導入するべきだと考えて、lombokを使うようにしました。このとき「lombokを導入するべき」と考えた理... 続きを読む
コンパイルは(テストではなく)証明である - あどけない話
「プログラムのテストはバグの存在を示すことにかけてはとても効率的な方法ですが、バグの不在を示すことにかけては絶望的なほどに不適切です。プログラムの信頼性を顕著に向上させる唯一の方法は、その正当性に対して説得力のある証明を与えることです」 -- Edsger W. Dijkstra静的型付き言語では、コンパイル時に型が検査される。この型検査に関連して型推論という機能を持つ言語がある。型推論は、大きく... 続きを読む
wise9 › JavaScriptが27%も高速化できる!?新言語JSXが登場!
DeNAから新たな開発環境が提供された。 その名もJSX。 JavaScriptをベースとした言語で、静的片付けを行うことでコンパイル時にプログラムを最適化し、最大4〜27%の高速化を実現する。JSXはJavaScriptへとコンパイルされるため、そのままHTML5対応ブラウザで動作させることが可能。 ユニークなのは、パッケージにnodeJSによるWebインターフェースが含まれていることで、これを... 続きを読む
PHPでアノテーション « BEAR Blog
アノテーションとは プログラミングでは、コード中に登場する要素(クラス、メソッドなど)に対して、それ自体に関する情報(メタデータ)を注記できる仕組みのことをアノテーションという。「このメソッドはテスト用である」「ここでコンパイラは警告を出してはならない」「このメソッドはオーバーライドである」などの情報を付記し、コンパイル時や実行時に参照させることができる。 IT用語辞典 このように説明されるアノテ... 続きを読む
Visual Studioでの開発をゲーム化するVisual Studio Achievements | スラッシュドット・ジャパン デベロッパー
あるAnonymous Coward 曰く、Microsoftから、Visual Studioでの開発をゲーム化するプラグイン「Visual Studio Achievements」のベータ版が公開された(Visual Studio Achievements、 GeekWireの記事、 本家/.)。 プラグインを導入すると、コンパイル時にバックグラウンドでコードが分析され、内容に応じて実績(Ach... 続きを読む
iandeth. - Perl の use と require の違い
以前飲み会で、会社の先輩と「use と require の違いってなんじゃ?」てな話をした際、知識不足ゆえうまく答えが出せなかったのですが、Programming Perl 等をちょろちょろ読み始めた今なら、ちょっとはマシな回答が出来る気がした /w のでまとめてみました。 perldoc を始め、色々なサイトや書籍でも既に述べられているとおり、 use はコンパイル時に評価される - modul... 続きを読む