静的と動的の融合

ネタ元:d.y.d - PPL 2008


静的型付けと動的型付けを同時にサポートする言語を作ろう、という試みがある

そのプロトタイプのために Konoha という言語が作られた


Konoha は基本的には Java ライクな静的言語である

そこに any という動的型を導入することで動的型付けもサポートする


any は C# 風に説明すれば、動的な var であり
C++ 風に説明すれば、any_cast が不要な Boost.Any である(動的な auto と考えてもらってもかまわない)

メソッドの戻り値の型や、変数宣言時の型を省略することもでき、省略された型は any となる


また、静的言語の特徴として「コンパイルエラーが発生したらコード生成を停止する」というものがある

Konoha ではこれに対して、コンパイルエラーが発生したコードは実行時例外を投げるコードに置き換えることで
たとえコンパイルエラーが発生しても実行可能なモジュールを生成する、という "Run anytime" Compiler を導入している


これにより「ちょっと試したいだけなのにコンパイルエラーが発生する…エラーが発生したとこをコメントアウトしよう」
という手間を省き生産性を向上させる



詳細は PPL2008 の 『Konoha: ハイブリッドな型検査システムを備えたスクリプティング言語』を参照していただきたい