短い言語の説明
Genteeには「C」のような構文があり、このファミリーのあらゆる言語に出会う人なら誰でも理解できます。 この言語には厳密な類型化があり、OOJPではありませんが、型(オブジェクト)の継承があり、多態性をサポートしています。 構文と主な機能については説明しません。公式ドキュメントの「言語の説明」セクションの内容を示し、興味深い点をいくつか説明します。 この場合、Genteeの機能をより完全に把握できると思います。
言語の基本要素
- 識別子
- 数字
- 行
- バイナリデータ
- マクロ
- コレクション
プログラム構造。 プリプロセッサ
- コメント キャラクター置換
- 定義コマンド
- ifdefコマンド
- マクロ式
- コマンドを含める
- インポートコマンド
- パブリックおよびプライベートコマンド
タイプと変数
- タイプコマンド
- 型の継承
- 型のシステムメソッド
- グローバルチーム
- ローカル変数
機能操作方法
- 関数の定義
- メソッド定義
- オペレーター操作のオーバーライド
- テキスト関数の定義
- プロパティのプロパティ
- 外部コマンド
- サブファンクサブ関数
- 変数を返す
言語構成
- if-elif-else条件コンストラクト
- 選択構造の切り替え
- whileおよびdoループ構造
- forおよびfornumループ構造
- Foreachループの構築
- ステートメントのリターン、ブレーク、コンティニュー
- ラベル、後藤指示
- 建設
式と演算子
- 算術演算子
- 論理演算子
- 割り当て演算子
- 型キャスト
- フィールドとポインター
- 関数とメソッドの呼び出し
- 条件付きステートメント?
- 遅延バインディング操作
- オペレーター優先順位表
いくつかの興味深い点
私はCでのプログラミングが好きでしたが、ローカル変数でstrのような文字列を定義するだけでは機能せず、関数を終了するときに削除することも考えられないという事実は常に好きではありませんでした。 言語を作成するとき、私はこの問題を修正し、あなたは安全に書くことができます
func myfunc
{
str mystr = "This is a string"
print( mystr ) // , print( "This is a string")
}
これはstrだけでなく、すべての型にも適用されます。 型のdeleteおよびinitメソッドを記述できます。これらのメソッドは、変数の作成および削除時に自動的に呼び出されます。 また、インデックス[i]、foreach演算子での列挙、操作の使用=、+、-、== 、! =、*、Etcによって、任意のタイプを「台無しにする」ことができます。
2番目の興味深い点は、任意のAPIとの統合です。 エクスポートされた関数を含むDLLがあれば、プログラムで簡単に接続して使用できます。
たとえば、次のように書くことができます
import "user32.dll"
{
uint ExitWindowsEx( uint, uint )
uint RegisterWindowMessageA( uint ) -> RegisterWindowMessage
}
そして、ExitWindowsExとRegisterWindowMessageを通常の関数として使用します。 この機能は、言語を他のプラットフォームに移植できないことを意味するものではありません。 Gentee v2にはLinux向けのバージョンがありましたが、残念ながら、これまでさまざまな理由でコンパイラの3番目のバージョンはWindows専用でした。
言語のシンプルさとパワーの妥協点を見つけるのは困難でした。一部の機能はおそらく十分ではありませんが、結果を恥じていません。 たとえば、テキスト関数があります。これは、行を含むコードはないが、コードが散在しているテキスト(PHPコードを使用したHTMLの類似物)がある場合です。 任意のファイルをバイトコードにリンクして、メモリ内で直接アクセスするか、一時的にディスクに書き込むことができます(使用されているDLLファイルに便利です)。 もちろん、マクロと条件付きコンパイルなどを備えたプリプロセッサがあります。
次は?
どの言語も、その実用化の可能性なしには興味がありません。 一方では、Genteeは私たちのプログラムで広く使用されており、ディストリビューションには30以上のライブラリ(ファイル、文字列、ツリー、dbf、sqlite、xml、COM / OLE、HTTP、FTPなど)が含まれ、コンパイラには組み込みオプティマイザが含まれていますGUIプログラムを作成するためのビジュアルスタジオ(ただし、ドキュメントはありません)でも、Genteeユーザーの1人が開発したデバッガーがあります。 一方、この言語には大きな関心はありません。 理由は理解できます。言語に関連するものはすべて純粋な熱意で作成されたため、希望する形式にするのに十分なお金がありません。 Windowsだけでなくバージョンも見たいです。 また、言語自体に新しい機能を追加することも可能です(オプションのパラメーター、言語レベルでのUTF-8およびUnicodeのサポート)。 開発の方法はありますが、現在でもGenteeは他のアプリケーションで使用したり、小さなユーティリティをすばやく作成するための便利なツールとして非常に便利な言語です。
「なぜ別のプログラミング言語が必要なのか」または「なぜ他のプログラミング言語よりも優れているのか」と言う人のために、プログラムのスクリプト言語として使用でき、コンパイラーや仮想マシンを備えた類似の機能を持つ別の言語を教えてください150 KB未満です。