Lispの強力な能力、pythonの読みやすさ、Cのパフォーマンスを組み合わせたプログラミング言語:Nimrod
2781 ワード
Lispの強力な能力、pythonの読みやすさ、Cのパフォーマンスを組み合わせたプログラミング言語:Nimrod
プロジェクトのホームページ:http://nimrod-code.org/
Nimrodは新しい静的タイプ、コマンドプログラミング言語であり、プロセス、関数、オブジェクト向け、汎用プログラミングスタイルをサポートし、シンプルで効率的です.NimrodがLispから継承した特殊な特性である抽象構文ツリー(AST)は,言語仕様の一部として,領域特定言語を作成する強力なマクロシステムとして利用できる.
Nimrodはコンパイル型のゴミ収集システムプログラミング言語であり、極めて優れた生産/性能比を持っている.Nimrodの設計は3つのEに集中している:すなわち効率(efficiency)、表現能力(expressiveness)、優雅(elegance).
Nimrodの例:
Nimrodは効率的です.
オリジナルコード生成(現在はC言語にコンパイルされている)、仮想マシンに依存しない:Nimrodは依存しない小さな実行プログラムを生成し、再配布しやすい. 高速非追跡ゴミ収集器で、ゲームなどのリアルタイムシステムをサポートします. システムプログラミング機能:自分のメモリを管理し、ハードウェアに直接アクセスできます.ごみ収集器のメモリへのポインタと、手動でメモリを管理するポインタには違いがあります. ゼロオーバーヘッド反復器(zero-overhead iterators). は、モジュール間で接続されています. には、ダミーメソッドテーブルなしでインラインされた動的メソッドバインドがあります. ユーザ定義関数のコンパイル時計算. プログラム全体のデッドコード消去:実行可能プログラムに含まれる関数にのみ使用されます. 値に基づくデータ型:オブジェクトや配列などがスタックに割り当てられる.
Nimrodは表現力が強い
Nimrodコンパイラとすべての標準ライブラリはNimrodで実装されています. には、文字列、集合、シーケンスなどの高度なデータ型が組み込まれています. 現代タイプシステム:ローカルタイプ推定(local type inference)、メタグループ、変形、汎用など. ユーザはオペレータを定義することができる.新しいオペレータを使用するコードは、通常、組み込みオペレータを再ロードするコードよりも読みやすいです.=~オペレータはreモジュールに定義されます. マクロは、コンパイル時に抽象構文ツリーを変更できます.
Nimrodは優雅です
マクロは、コマンドパターンを使用して解析ツリーを構築することができる.Nimrodはメタプログラミングを行う際に異なるコードスタイルを使用する必要はありません. マクロはNimrodの構文を変更することはできません.この必要はありません.Nimrodの文法は十分柔軟です. 文は、縮小(注意:pythonのインデントレイアウト構文と同様)で文を組み合わせることができますが、複数行に分けることができます.縮小にはタブキー(tabulators)を含めることはできません.そのため、コンパイラが見たコードは人が見たのと同じです.
外の世界と踊る
NimrodコンパイラはWindows、Linux、BSD、Mac OS Xで動作し、他のプラットフォームに移植するのは簡単です. NimrodコンパイラはC++またはObjective Cコードを生成することもでき、インタフェースは簡単です. には、GTK 2、Windows API、POSIX API、OpenGL、SDL、Cairo、Python、Lua、TCL、X 11、libzip、PCRE、libcurl、mySQL、SQLiteへのバインドが標準リリースに含まれているなど、多くのバインドがあります. CからNimrodへの変換ユーティリティ:Cライブラリへの新しいバインドはc 2 nimで容易に生成できます. PascalからNimrodへの変換ユーティリティ:大量のObject Pascalサブセットを自動的にNimrodに変換できます.
1.0までの路線図
Version 0.9.0
クローズドclosures
Version 0.9.X
recursive iterators/coroutines再帰反復器/コモン 2-phase type system for better interaction between macros,templates and overloadingマクロ、テンプレート、リロード間のより良いインタラクション2相タイプシステム term rewriting macrosエントリ書き換えマクロ the syntactic distinction between statements and expressions will be removed文と式間の構文の違いは 削除されます. the need for forward declarations may be removed前方宣言の必要性は を削除する可能性があります.
プロジェクトのホームページ:http://nimrod-code.org/
Nimrodは新しい静的タイプ、コマンドプログラミング言語であり、プロセス、関数、オブジェクト向け、汎用プログラミングスタイルをサポートし、シンプルで効率的です.NimrodがLispから継承した特殊な特性である抽象構文ツリー(AST)は,言語仕様の一部として,領域特定言語を作成する強力なマクロシステムとして利用できる.
Nimrodはコンパイル型のゴミ収集システムプログラミング言語であり、極めて優れた生産/性能比を持っている.Nimrodの設計は3つのEに集中している:すなわち効率(efficiency)、表現能力(expressiveness)、優雅(elegance).
Nimrodの例:
import strutils
echo "Type in a list of ints of ints (separate by whitespace):"
let tokens = stdin.readLine.split
echo tokens.each(parseInt).max,"is the maxmum."
Nimrodは効率的です.
Nimrodは表現力が強い
Nimrodは優雅です
外の世界と踊る
1.0までの路線図
Version 0.9.0
クローズドclosures
Version 0.9.X