esbasic0014
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* ES-BASIC の紹介 (一番下にダウンロードもあります)
-(by [[K]], 2019.11.21)
** スクリプト言語 vs コンパイラ言語
-スクリプト言語(インタプリタ言語)って、プログラムを入力...
-ちょっとしたことを試したいだけなら、ダイレクトコマンドで...
-しかし、スクリプト言語は実行がとても遅いです。だから速度...
-じゃあ、実行速度が十分に速いスクリプト言語があったらどう...
----
-これは「マンデルブロ集合」の描画に必要な演算でベンチマー...
-どれもそれぞれの言語で一番スピードが出る書き方を目指して...
|言語|処理系のインストールサイズ|タイプ|実行時間|GCC x64 ...
|GCC x64 8.1.0 -O3|RIGHT:449256KB|コンパイラ言語|RIGHT:1....
|''ES-BASIC'' ver.0.1b 64bit版|RIGHT:102KB|スクリプト言語...
|Ruby 2.6.4p104 x64|RIGHT:75323KB|スクリプト言語|RIGHT:76...
|Python 3.7.4|RIGHT:85771KB|スクリプト言語|RIGHT:344.891...
|Python+Numba||スクリプト言語||RIGHT:2倍?|以前類似のテス...
|JavaScript(Node.js)||スクリプト言語||RIGHT:15倍?|以前類...
-これを見ると、確かにコンパイラ言語であるC言語の強さは圧...
-しかし我らがES-BASICは、その中にあって、かなりいい勝負を...
-だから私は言いたいのです。「スクリプト言語だから遅いので...
** ES-BASIC ver.0.1b
-最大の特徴は、前述のとおり、スクリプト言語のくせに常識外...
-第二の特徴は、言語処理系がとても小さいことです。まあ「開...
|CENTER:''「グラデーション」''| |CENTER:''「マンデル...
|CENTER:この画像を表示するプログラムは7行で書けます。||CE...
|http://k.osask.jp/files/esb20190827a.png||http://k.osask...
--(上記のプログラムの内容についての詳細は[[esbasic0010]]...
-これだけの機能があっても102KBなのです(・・・命令の一覧...
-ソースコードはC言語で4927行ほどありますが、そのうちの317...
--(この1748行の内訳は[[esbasic0011]]に書きました。)
-これで分かることは、高速な実行が可能なスクリプト言語は、...
** なぜこんなに高速なのか
-ES-BASICは「JITコンパイラ」という技術を使って、プログラ...
-これはRUN命令が来たら、直ちに(=Just-In-Time)対象のプ...
-原理的にはこれに尽きます。・・・この説明だけを見れば簡単...
** デバッグ支援機能
-ES-BASICではデバッグ支援も大事な要素です。
-一般に開発時間の4~7割はデバッグの時間になっているとも言...
-プログラムをRUNしてみて、動作が怪しいと思ったらグラフィ...
-そうではなく、デバッグ中にもう怪しいところの目星がついて...
-配列で添え字を間違えて対象の変数以外を書き換えて大惨事に...
----
-そしてES-BASICのデバッグにおける目玉機能はなんといっても...
-原理はとても単純で、各行を実行する直前に、指定しておいた...
9000 NODEBUG 1
9010 LABEL TRAP
9020 IF I>=20 THEN
9030 PRINT "I>=20 IN ",$LINE
9040 PAUSE
9050 FI
9060 RETURN
-たったこれだけで、変数iをすべての行で監視できるようにな...
-今回は簡単な条件でしたが、もっとややこしい条件でももちろ...
-プログラム中に出てきた変数$LINEは特別な変数で、どこの行...
9051 IF $LINE==2340 THEN PRINT "[2340] "; FI
-みたいなこともできます。これは2340行の行頭に PRINT "[234...
-また、
9052 IF $LINE==3450 THEN NORETURN 3460; FI
-ということもできます。これは3450行を実行せずに3460行へ帰...
-こうしてプログラム本体には一切手を入れずに、デバッグのた...
** 高度な機能
-C++11には、constexpr(const-expression:定数式)という機...
-C++でこれが可能になった背景には、C++は大変に高度な最適化...
-ではES-BASICで似たようなことはできないのでしょうか。・・...
-「高速なスクリプト言語」に、どれほどの可能性があるか、そ...
** ところで、なぜBASICなの?
-ES-BASICは基本構文が、1980年ごろの、全部の行に行番号が必...
-なにもそんな廃れた仕様を採用する必要なんてないだろうに・...
-じゃあ、なんで・・・って思われると思いますが、はい、そも...
-ES-BASICは最初は冗談というか遊びで作っていただけでした。...
-それが・・・なんか作っているうちに意外に優秀になってしま...
** ダウンロード
-ES-BASIC ver.0.2aが出ました → [[esbasic02a]]
-http://k.osask.jp/files/esbas01e.zip 144.4KB [2020.01.22]
-http://k.osask.jp/files/esbas01d.zip 130.5KB [2019.12.18]
-http://k.osask.jp/files/esbas01b.zip 127.5KB [2019.11.23...
--Windows用の実行ファイルと、ソースコードが入っています。
--[注意] Windows8以降では、exeを実行しようとすると「Windo...
---これが出たら「詳細情報」をクリックすることで「実行」を...
---(ちなみに、ソースをコンパイルして自分でexeファイルを...
---このメッセージは、実際に問題があろうとなかろうと、ダウ...
* こめんと欄
#comment
終了行:
* ES-BASIC の紹介 (一番下にダウンロードもあります)
-(by [[K]], 2019.11.21)
** スクリプト言語 vs コンパイラ言語
-スクリプト言語(インタプリタ言語)って、プログラムを入力...
-ちょっとしたことを試したいだけなら、ダイレクトコマンドで...
-しかし、スクリプト言語は実行がとても遅いです。だから速度...
-じゃあ、実行速度が十分に速いスクリプト言語があったらどう...
----
-これは「マンデルブロ集合」の描画に必要な演算でベンチマー...
-どれもそれぞれの言語で一番スピードが出る書き方を目指して...
|言語|処理系のインストールサイズ|タイプ|実行時間|GCC x64 ...
|GCC x64 8.1.0 -O3|RIGHT:449256KB|コンパイラ言語|RIGHT:1....
|''ES-BASIC'' ver.0.1b 64bit版|RIGHT:102KB|スクリプト言語...
|Ruby 2.6.4p104 x64|RIGHT:75323KB|スクリプト言語|RIGHT:76...
|Python 3.7.4|RIGHT:85771KB|スクリプト言語|RIGHT:344.891...
|Python+Numba||スクリプト言語||RIGHT:2倍?|以前類似のテス...
|JavaScript(Node.js)||スクリプト言語||RIGHT:15倍?|以前類...
-これを見ると、確かにコンパイラ言語であるC言語の強さは圧...
-しかし我らがES-BASICは、その中にあって、かなりいい勝負を...
-だから私は言いたいのです。「スクリプト言語だから遅いので...
** ES-BASIC ver.0.1b
-最大の特徴は、前述のとおり、スクリプト言語のくせに常識外...
-第二の特徴は、言語処理系がとても小さいことです。まあ「開...
|CENTER:''「グラデーション」''| |CENTER:''「マンデル...
|CENTER:この画像を表示するプログラムは7行で書けます。||CE...
|http://k.osask.jp/files/esb20190827a.png||http://k.osask...
--(上記のプログラムの内容についての詳細は[[esbasic0010]]...
-これだけの機能があっても102KBなのです(・・・命令の一覧...
-ソースコードはC言語で4927行ほどありますが、そのうちの317...
--(この1748行の内訳は[[esbasic0011]]に書きました。)
-これで分かることは、高速な実行が可能なスクリプト言語は、...
** なぜこんなに高速なのか
-ES-BASICは「JITコンパイラ」という技術を使って、プログラ...
-これはRUN命令が来たら、直ちに(=Just-In-Time)対象のプ...
-原理的にはこれに尽きます。・・・この説明だけを見れば簡単...
** デバッグ支援機能
-ES-BASICではデバッグ支援も大事な要素です。
-一般に開発時間の4~7割はデバッグの時間になっているとも言...
-プログラムをRUNしてみて、動作が怪しいと思ったらグラフィ...
-そうではなく、デバッグ中にもう怪しいところの目星がついて...
-配列で添え字を間違えて対象の変数以外を書き換えて大惨事に...
----
-そしてES-BASICのデバッグにおける目玉機能はなんといっても...
-原理はとても単純で、各行を実行する直前に、指定しておいた...
9000 NODEBUG 1
9010 LABEL TRAP
9020 IF I>=20 THEN
9030 PRINT "I>=20 IN ",$LINE
9040 PAUSE
9050 FI
9060 RETURN
-たったこれだけで、変数iをすべての行で監視できるようにな...
-今回は簡単な条件でしたが、もっとややこしい条件でももちろ...
-プログラム中に出てきた変数$LINEは特別な変数で、どこの行...
9051 IF $LINE==2340 THEN PRINT "[2340] "; FI
-みたいなこともできます。これは2340行の行頭に PRINT "[234...
-また、
9052 IF $LINE==3450 THEN NORETURN 3460; FI
-ということもできます。これは3450行を実行せずに3460行へ帰...
-こうしてプログラム本体には一切手を入れずに、デバッグのた...
** 高度な機能
-C++11には、constexpr(const-expression:定数式)という機...
-C++でこれが可能になった背景には、C++は大変に高度な最適化...
-ではES-BASICで似たようなことはできないのでしょうか。・・...
-「高速なスクリプト言語」に、どれほどの可能性があるか、そ...
** ところで、なぜBASICなの?
-ES-BASICは基本構文が、1980年ごろの、全部の行に行番号が必...
-なにもそんな廃れた仕様を採用する必要なんてないだろうに・...
-じゃあ、なんで・・・って思われると思いますが、はい、そも...
-ES-BASICは最初は冗談というか遊びで作っていただけでした。...
-それが・・・なんか作っているうちに意外に優秀になってしま...
** ダウンロード
-ES-BASIC ver.0.2aが出ました → [[esbasic02a]]
-http://k.osask.jp/files/esbas01e.zip 144.4KB [2020.01.22]
-http://k.osask.jp/files/esbas01d.zip 130.5KB [2019.12.18]
-http://k.osask.jp/files/esbas01b.zip 127.5KB [2019.11.23...
--Windows用の実行ファイルと、ソースコードが入っています。
--[注意] Windows8以降では、exeを実行しようとすると「Windo...
---これが出たら「詳細情報」をクリックすることで「実行」を...
---(ちなみに、ソースをコンパイルして自分でexeファイルを...
---このメッセージは、実際に問題があろうとなかろうと、ダウ...
* こめんと欄
#comment
ページ名: