こちら動作した、ちょっとクセのあるハローワールドの10回繰り返しプログラム。for文が変数varを付けるとエラー(syntax error, unexpected VAR)、付けなくてもエラー(syntax error, unexpected COLON)。while文内に不等号記号などを入れるとエラー(invalid character '\x3E' in source file.)。a--もa-=1も使えないので、a=a-1とIchigoJam BASIC風にひとまず記述。浮動小数点変数f32を使おうとするとエラー(Only i32 is supported for now: f32)となるので、Geo3x3移植はもうしばらくしてから再度チャレンジします。
package sample api; fn Main() -> i32 { var a: i32 = 10; var b: Bool = true; while (b) { let s: auto = "Hello Carbon world!"; Print(s); a = a - 1; if (a == 0) { b = false; } } return 0; }
プログラミング言語、C++のとの相互運用を特徴とした、LLVMをバックエンドとして、コンパイルする今風の言語。安定したらC++のライブラリ使用版と、Carbonネイティブ版の両方作って動かしてみたいですね。
「carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)」
forループなど、絶賛開発中なので、プログラミング言語のオープンソース開発に興味ある人にオススメです!
links
- Chandler Carruth on Twitter: "Really excited we've been able to start sharing our experimental work on #CarbonLang with the wider C++ community. That said, I'd suggest folks read up on the docs and maaaybe wait for our announcement keynote and Q&A from #CppNorth before leaping to too many assumptions. =]" / Twitter
- C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と - Publickey