別のJavaScript言語-ColaScript


みなさんこんにちは! この記事では、私の言語であるColaScriptを紹介します。 一言で言えば、これはJavaScriptに変換される新しい構文言語です。 この言語が登場した理由を説明することから始めます。

外観の理由



JavaScriptに翻訳された言語が必要なのはなぜですか?

個人的には、このような言語を使用する利点は、もちろん、主に構文糖であり、コードの量が削減されます。 第二に、それは構造的(OOP、モジュール、パッケージ...)であり、純粋なJavaScriptで達成するのはそれほど簡単ではありません。 現時点では、リストされているほとんどすべての品質を持つ3つの言語があります。

CoffeeScript

これは、私が学んだこのタイプの最初の言語です。 現時点では、この言語には多数の構文チップがあり、クラスに直面してOOPが存在します。 CoffeeScriptの一般的な構文スタイルはRubyやPythonと同じです。見た目はかっこいいですが、個人的にはすべて同じチップをCに似た構文で見たかったのです。 また、CoffeeScriptでは、コードからのソース/モジュールの接続はありません。

TypeScript

TypeScriptは、静的型付け、OOP実装、およびプラグインを備えたMicrosoftが開発した言語です。 構造に関しては、すべてが問題ありませんが、砂糖の構文はありません。



ダーツ

この言語に初めて触れたのは、最初のバージョンが登場した直後です。この言語はまだ生であり、私自身は、なぜそれが必要なのかを本当に理解していませんでした。 昨年の夏、私はこの言語に何が起こったのかを見ることにしました-それは私が必要としていたものでした:OOP、パッケージ(自分のマネージャーでさえ)、良い標準ライブラリー、そして構文糖

query("#myElement") ..innerHtml = "Hello World!" ..style.backgroundColor = "red"; 

Dartはコンパイル済みのJavaScript言語ですが、下位互換性はありません。 特に、これにより、ランタイムとライブラリの重みが大きくなり、既存のJavaScriptコードでの作業が困難になります。

最後に

その結果、上記の3つの言語の長所を取り入れた独自の言語を作成したいという願望に打ち勝ちました。 そこで、ColaScriptが発明されました。

作成プロセスについて少し


UglifyJSなどのツールが基礎として採用されました。 UglifyJSはJavaScriptコードを圧縮するために作成されました。このため、コードを解析し、 ASTツリーで動作します。 私の仕事は、パーサーを新しい構文に変更することと、JavaScript-ASTでColaScript-ASTトランスレーターを直接記述することでした。UglifyJSには他のすべてが既に存在します。 パーサーは、ColaScriptとJavaScriptの両方を同時にサポートするように改善されました。これは、JavaScriptで記述されたライブラリとフレームワークを簡単に接続できるようにするためです。

どうした


私の仕事の結果はgithubで見ることができ、 ここでライブ言語を試すことができます 。 現時点では、開発の最初の段階のみが完了しており、同じCoffeeScript、TypeScript、およびDartに比べて言語にはまだ特別な利点はありませんが、 ここで説明する実装のアイデアはまだたくさんあります

非常に小さなコード例:
 @use strict main(){ console.log(" Hello World! This is simple example for Habrahabr.ru! PS I love haters so much :-) @{Date()} "); } 

翻訳結果:
 "use strict"; window.addEventListener("DOMContentLoaded", function main() { console.log("\nHello World!\nThis is simple example for Habrahabr.ru!\n\nP.S. I love haters so much :-)\n" + Date() + "\n\n"); }, false); 

言語に関するあなたの意見を待っています。 ご清聴ありがとうございました。

Source: https://habr.com/ru/post/J224585/


All Articles