bolt-lang
豊富な型システムを備えた高水準で組み込み可能なプログラミング言語です。LuaやPythonといった他のスクリプト環境の優れた機能を統合しつつ、プリプロセッサツールや別個の静的解析ツールを使用せず、言語自体に直接型付け機能を組み込むことを目指しています。 この設計により、Boltは高速な処理を実現し、他の動的言語で必要となる動的型付け処理や関数フレームのセットアップを大幅に削減することが可能となっています。
また、Boltのコードはより保守性と拡張性に優れ、型が意図を明示的に表現する手段として機能します。他の多くの動的言語と比較して、Boltの型システムから逸脱する方法ははるかに少なく、これは型がBoltの設計当初から中核的な要素として組み込まれているためです。 code:example.bolt
import print, error, Error from core
import abs, epsilon from math
// The return type of safe_divide is inferred to be Error | number
fn safe_divide(a: number, b: number) {
return if abs(b) < epsilon
then error("Cannot divide by zero!")
else a / b
}
match let result = safe_divide(10, 5) {
is Error {
// The type of result is narrowed in this branch!
print("Failed to divide:", result.what)
}
is number {
print("The answer is", result)
}
}
C言語での、型あり、Context での実行情報管理、手書きレキサー/パーサーなどのコンパクトな言語実装の参考としてもとても良さそう。