Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
![フィンテックでアクターモデルのプログラミング言語Ponyを使う](https://cdn-ak-scissors.b.st-hatena.com/image/square/856f16c8f47cd5adf04908f69a401fdc6b898551/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20240705082009%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)
(注:2017/07/06、いただいたフィードバックを元に翻訳を修正いたしました。) この記事は、 LLVM コンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。 LLVMとは何か? LLVMは非常に優れていて、ハックしやすく、C言語やC++のような”ネイティブ”言語向けの、時代の先端を行くコンパイラです。 LLVMの素晴らしさに関しては他にも様々な話を聞くのではないでしょうか(JITコンパイラとしても使えるとか、C言語系列以外の様々な言語を強化できるとか、 App Storeからの新しい配信形態 であるとか、などなど)。もちろん全部本当のことですが、今回の記事の目的としては、上述の定義が重要です。 LLVMが他のコンパイラと差別化される理由には、いくつかの大きな
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトは1月20日(米国時間)、「LLVM Project Blog: LLDB is Coming to Windows」において、Windows向けに移植を続けているデバッガLLDBの進捗状況を報告した。移植作業は初期の段階に到達しており、基本的なデバッグ機能は動作するようになったと説明している。ただし、LLDBテストの約50%ほどしか機能を達成していないとしており、満足に利用できる状況になるにはまだ時間がかかると見られる。 Windowsにおいては、すでにGDBやVisual Studio、WinDBGといったデバッガ
米Dropboxは4月3日、オープンソースのPython実装「Pyston」を発表した。LLVMのJITエンジンを利用するPython実装で、より高いパフォーマンスを目指すという。 PystonはLLVMおよびLLVMのJIT(Just In Time)実行エンジンを使用して構築されたPython実装。Python 2.7互換の実装で、現時点ではx86_64プラットフォームでのみ動作し、動作テストはUbuntuで行っているという。 パースされたPythonコードをLLVMの中間表現(IR)に変換し、LLVMのオプティマイザを経てLLVM JITエンジンで実行可能なコードを生成する。LLVMには最適化パスなど最適化のための仕組みが多数含まれており、高速なコードを精製できるとしている。現時点での性能については「CPythonよりも上だがPyPyよりは劣る」と報告されている。 Dropboxでは
コンパイラ環境LLVM(Low Level Virtual Machine)を開発するLLVM Projectは6月18日、最新版となる「LLVM 3.4」をリリースした。C/C++フロントエンド「Clang」も新しくなり、自動フォーマットツールなどが加わっている。 LLVMは強力な最適化機能を特徴とするコンパイラフレームワーク。イリノイ大学の研究プロジェクトとしてスタートしたもので、任意のプログラム言語の静的/動的コンパイルをサポートするコンパイラの構築を目指している。ソースコードやターゲットに依存しないコアライブラリを中心に、C/C++/Objective-CコンパイラのClang、GCCと連携してAdaやFortranなどGCCがサポートする言語をLLVMでコンパイル可能にする「dragonegg」など多数のサブプロジェクトを持つ。 LLVM 3.4は2013年6月に公開されたバージ
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. 11月6日から7日(米国時間)にかけてサンフランシスコで開催された「2013 LLVM Developers' Meeting」におけるプレゼンテーションのようすがサイトにアップロードされた。Sony Computer EntertainmentのPaul T. Robinson氏がPlayStation 4の開発環境について発表しており、コンパイラインフラストラクチャとしてLLVM Clangを採用していること、採用に至るまでの検討事項や、結果としてどのような利点が得られたかを説明している。 PlayStation 4の開発にはLLVM
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMのメーリングリストに、LLVMをコンパイラインフラストラクチャとして採用した新しいプログラミング言語「Leaf」を開発しているというアナウンスメールが「[LLVMdev]Announcing Leaf v0」として投函された。コンパイル時の最適化などはLLVMの機能をそのまま使うことができるため、新しいプログラミング言語の設計と実装に集中できるといった説明がある。 プログラミング言語Leaf自体の特徴は「Features — Leaf」のページから確認できる。動的に推測決定される型、タプル、安全で明示的な型変換、順序性を持たない宣
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトはブログ「libc++ and C++1Y」において、libc++がC++1Y標準ライブラリのすべてを実装したことを伝えた。C++1YはC++の次期バージョンとして策定が進められているもので、最終的に「C++14」になるのではないかと考えられている。C++11で発見された問題が解決されているほか、新しい機能が追加されている。 LLVMはもともとC言語のコンパイラとして開発が進められてきた側面が強く、C++への対応はここ数年で急速に進められてきたという背景がある。これまでC++への対応は後追いの感があったが、今回C++1
コンパイラ環境LLVM(Low Level Virtual Machine)を開発するLLVM Projectは6月18日、最新版となる「LLVM 3.3」およびC/C++フロントエンド「Clang」をリリースした。C++11のフルサポートや性能の改善などが特徴となる。 LLVMは強力な最適化機能を提供するコンパイラフレームワーク。ソースコードやターゲットに依存しないコアライブラリ、C/C++/Objective-CコンパイラのClang、デバッガ「LLDB(Low Level Debugger)」、GCCをフロントエンドとして利用することでAdaやFortranといった言語をサポートする「DragonEgg」などのサブプロジェクトがある。ライセンスはUniversity of Illinois/NCSA Open Source Licens。 LLVM 3.3は2012年12月に公開され
原文(投稿日:2013/05/22)へのリンク どのブラウザでも動くウェブのバイトコードは価値があるだろうか。LLVMはソリューションとして成り立つだろうか。ネイティブコードをブラウザ上で動かすにはMozillaのasm.jsとGoogleのPNaClのどちらがいいだろうか。この記事ではこれらについての意見を紹介する。 ArsTechnicaのJavascriptで書かれた動画コーデックについての記事に対するRanizのコメントは同記事のコメント欄やウェブ上でさまざまな反響を起こした。Ranizは“ブラウザ向けバイトコードを標準化し、開発者がさまざまな言語を選択できる”ようにして、開発者がJavaScriptを使わざるを得ない状況を脱し、好きなウェブプログラミング言語を選択できるようにすることを提案している。そのバイトコードはJVMやCLRのバイトコードと同じように、ウェブ開発の共通プラッ
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトのブログに、「C++11 Migrator」と呼ばれる現在開発が進められている新機能の紹介記事が掲載された。C++11 Migratorは既存のC++のソースコードをC++11の機能を使ったソースコードへ変換するためのツール。2012年12月に提案されたプロジェクトで、現在開発段階にある。 C++11 Migratorの目的はソースコードをC++11の新機能を使った記述へ変更することで、C++ソースコードのメンテナンス性の引き上げ、読みやすさの向上、実行時のパフォーマンスの引き上げ、コンパイル時間の短縮、などを実現する
今回のデベロッパーキャンプには、エンバカデロの海外担当副社長兼ジェネラルマネージャであるNigel Brown氏が来日してキーノートセッションを担当した。同氏からはエンバカデロの2011年度の実績および2012年度の取り組みや、次期バージョンのRADツールに搭載予定の新機能の紹介、2011年にリリースされたアプリ配布基盤「AppWave」の最新動向の紹介などが行われた。ここでは、その中から次期Delphi/C++Builderに関する情報をお伝えする。 次期バージョンのDelphiとC++Builderでは、コンパイラ・アーキテクチャの大幅な変更に着手しているという。Delphiの場合、現行バージョンではDelphi(Pascal)コードをいったんDelphi中間表現に直し、それをIntelプロセッサ用のコードジェネレータで実行コードに生成するというプロセスになっている(図1.2)。C++
LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトは6日(米国時間)、LLVMの最新版となるLLVM 2.8を公開した。LLVM 2.8は6ヶ月にわたる開発の成果物。新機能の追加が実施されているほか、Clang C++が大幅に強化され、またプロジェクト的にも大きな改善が実施されたバージョンになっている。LLVM 2.8におけるおもな新機能は次のとおり。 新しいシステムアセンブラ。現在サポートしているのはELFとCOFFのMachOターゲット コンパイラからの.oファイルのダイレクト書き込みをサポート ARMディスアセンブラ ARMテールコールサポート ARMコード生成
The LLVM Projectは10月5日、「LLVM Compiler Infrastructure(LLVM) 2.8」をリリースした。C/C++/Objective-CフロントエンドであるClangがC++標準規格に完全に準拠したほか、さまざまな最適化が加えられている。 LLVM(Low Level Virtual Machine)はさまざまなプログラミング言語をサポートするコンパイラ基盤。各種言語をフロントエンド仮想マシン向け中間コードに変換するフロントエンドと、中間コードを実マシン向けの最適なコードに変換するオプティマイザ/コードジェネレータから構成されている。 前バージョンの2.7から5カ月ぶりのリリースとなるLLVM 2.8では、LLVMのコアとなるツール群が幅広く強化された。C/C++/Objective-C向けのフロントエンドであるClangは、C++の国際標準であるI
LLVMプロジェクトは27日(米国時間)、最新バージョンである「LLVM 2.7」をリリースした。LLVM (Low Level Virtual Machine)はAppleのMac OS Xなどでも利用されているコンパイラ環境。新バージョンではデバッグやシステム最適化を行うための中間情報を埋め込むメタデータ記述の拡張や、ClangでのC++によるセルフホスティングへの対応、新ロゴの設定など、いくつかのメジャーアップデートが行われている。 LLVMは従来の高級言語からバイトコードを直接吐き出すタイプのコンパイラとは異なり、高級言語から実行直前の中間言語を生成するコンパイラ・フロントエンドと、それをJIT (Just-In-Time)形式で異なる複数のターゲットマシン上で実行するバックエンドを組み合わせた二重構造になっている点に特徴がある。これにより複数のプログラミング言語を同時にサポートで
米Adobeのプラットフォーム事業部において、デベロッパ向けツールのプロダクトマネジメントを務めるGreg DeMichillie氏 2008年11月、Adobe LabsにFlash 10やAIR 1.5の活用の幅を大幅に広げる可能性をもった興味深いプロジェクトが登場した。Adobe Alchemyがそれだ。Adobe Labsは実験的な研究プロジェクトを擁しており、Alchemyはそうしたプロジェクトのひとつ。今回、Adobe Systemsのプロダクトマネジメント担当ディレクターを務めるGreg DeMichillie(グレッグ・デミチリー)氏にAlchemyの詳細を聞く機会を得た。Alchemyはどうやって誕生したのか、AdobeはAlchemyをどう捉えているのか、同氏の話から概要をお伝えしたい。 Adobe Alchemyは、簡単にまとめるとLLVMのActionScript
プログラミングとは何か プログラミングと聞いて、みなさんはまず何を連想するでしょうか? 狭義の意味では、人間の意図をプログラミング言語によって記述すること(コーディング)ですが、より広い範囲、ソフトウエア開発全体を連想する人も多いかと思います。 狭義の意味だけに絞ったとしても、プログラミング言語にはさまざまなものがありますし、記述する内容や書き方のスタイル(プログラミングパラダイム)にもいろいろなものがあります。 例えばCやC++のようなコンパイラ言語は、OSを初めとした、さまざまなシステムやアプリケーションを作るのに向いた言語と言われています。これらの言語で書かれたプログラムは、コンパイラに対して細かな指示を与え、効率的な実行可能ファイルを生成するための記述です。 それに対してShellやPerlのようなスクリプト言語は、その名の通り、システムの動作内容などを台本のように記述します。そし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く