diff --git a/README.md b/README.md index 5a96e41..ff69afd 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ ![](assets/logo_wide.png) +Elaphe is a compiler that translates Dart programs into bytecode that runs on the Python virtual machine. With Elaphe, you can utilize the rich libraries of Python while using the syntax and static type checking of Dart. + ElapheはDartのプログラムをPython VM上で動くバイトコードに変換するコンパイラです。Dartの文法や静的な型チェックを使いながらPythonの豊富なライブラリを利用することができます。 ![](assets/overview.png) # Install -現状Linuxのみサポートしています。GitHubからソースコードをダウンロードし、手元でビルドしてください。 +Elaphe currently only supports Linux. Please download the source code from GitHub and build it locally. - `git clone https://github.com/organic-nailer/elaphe.git` - `cd ./elaphe` @@ -19,7 +21,7 @@ ElapheはDartのプログラムをPython VM上で動くバイトコードに変 # Getting Started -Python3.9のみに対応しています。 +**Elaphe currently only supports Python3.9.** ``` $ elaphe init foo @@ -31,7 +33,7 @@ foo$ elaphe run main.dart # Example -[Anaconda](https://www.anaconda.com/products/distribution)/[Miniconda](https://docs.conda.io/en/latest/miniconda.html)でPython3.9の環境を作ります。`conda`コマンドは事前に使えるようにしてください。 +First, create a Python 3.9 environment using [Anaconda](https://www.anaconda.com/products/distribution) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html). Make sure that the `conda` command is available beforehand. ``` $ conda create -n elaphe_env python=3.9 @@ -41,7 +43,7 @@ Python 3.9.15 $ conda install numpy matplotlib ``` -`elaphe init`でプロジェクトを作成し、利用するライブラリを`elaphe add`で追加します。 +Create a new project with `elaphe init`, and adds libraries to use with `elaphe add`. ``` $ elaphe init elaphe_example @@ -50,7 +52,7 @@ elaphe_example$ elaphe add numpy elaphe_example$ elaphe add matplotlib ``` -`main.dart`を以下のように書き換えます。 +Next, rewrite `main.dart` as following: ```dart import 'elaphe/numpy.d.dart' as np; @@ -64,7 +66,7 @@ void main() { } ``` -`elaphe run`でコンパイル、実行します。 +Finally, compile and execute the program with `elaphe run`. ``` elaphe_example$ elaphe run main.dart @@ -80,15 +82,15 @@ elaphe_example$ elaphe run main.dart elaphe init ``` -指定されたディレクトリにプロジェクトを作成します。 +Creates a new project in the specified directory. ## elaphe add ``` -elaphe add +elaphe add ``` -指定したPythonモジュールの型定義ファイルをプロジェクトに生成します。Pythonモジュールは現在のPython環境に存在する必要があります。 +Generates a type declaration file(*.d.dart) of the specified Python package in the project. The Python package must be present in the current Python environment. ## elaphe build @@ -96,7 +98,7 @@ elaphe add elaphe build ``` -指定したDartファイルをコンパイルし、`main.pyc`ファイルを生成します。このファイルは`python main.pyc`で実行できます。 +Compiles the specified Dart file and generates the `main.pyc` file, which can be executed with `python main.pyc`. ## elaphe run @@ -106,7 +108,7 @@ elaphe run elaphe run -c ``` -指定したDartファイルをコンパイルし、実行します。オプション`-c`が指定された場合、後の文字列をDartプログラムと解釈し実行します。 +Compiles and runs the specified Dart file. If the `-c` option is passed, Elaphe interprets and executes the following text as a Dart program. # elaphe/core @@ -116,27 +118,27 @@ elaphe run -c external dynamic sl([int? start, int? end, int? step]); ``` -sliceをDart上で実現するため、sl()関数を用意しています。 +There is a sl() function available in Dart syntax that allows the use of slices. # Limitation -## 対応するPython VM +## Supported Python VM -生成するバイトコードの関係でPython3.9のみ対応しています。他のバージョンについては今後対応予定です。 +Due to the constraints of the generated bytecode, Elaphe currently supports Python 3.9 only. However, future plans include adding support for other versions. -## コンパイル対象 +## Compilation Target -単一ファイルのみ(main.dart)のコンパイルに対応しています。複数ファイルのコンパイル、他のdartファイルのimportは非対応です。 +Elaphe only supports compilation of a single file (main.dart). Compilation of multiple files and importing other dart files is not supported. -## Dartライブラリ +## Dart Libraries -Dartライブラリには対応していません。Flutterなどだけではなく、dart:coreやdart:mathなどの標準ライブラリも使うことができません。代わりにPythonのライブラリが利用できます。 +Elaphe does not support Dart libraries, including not only Flutter but also standard libraries such as dart:core and dart:math. Instead, Python libraries can be used. -## Dart文法 +## Dart Syntax -ElapheではDartの限られたサブセットのみをサポートしており、一部の文法が利用できません。順次対応文法の予定をしています。 +Elaphe only supports a limited subset of Dart syntax. Therefore, some syntax cannot be used. Plans are underway to gradually support more syntax. -形式的な文法の対応状況は以下のドキュメントを参照してください。赤字部分が対応済です。 +For the corresponding formal syntax, please refer to the following document. The red text indicates what is currently supported. https://docs.google.com/document/d/1c956nDwu3t9qNN0C4HBvl9U6WSvCUY3umqpzohqlrKs/edit?usp=sharing