【高速・強力】Euphoria【Win32,DOS,Linux対応】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/06/30(木) 21:54:09ttp://www.rapideuphoria.com/
Win32、DOS、Linuxに対応しており、DirectXやOpenGLなどのライブラリを
動作させることが可能です。
また、スタンドアロンな実行ファイルを生成することができます。
0002デフォルトの名無しさん
2005/06/30(木) 21:54:25・とても簡単で、柔軟、強力で学びやすく、使いやすい言語に定義されます。
・動的ストレージ割り当て。メモリの塊の解放や割り当てを心配しなければ
ならないプログラマ無しで変数は増えたり減ったりします。
・Perlやパイソンなどの従来のインタプリタより *30倍* 速い高い性能を
持つ最先端のインタプリタ。
・最適化されたEuphoriaからCトランスレータ、それは尚更あなたの速度を
上げることができます、2xから5xまで、既に十分速いインタプリタを加速します。
・実行時に以下のものがないかをチェックします:
区域外のサブスクリプト、初期化されていない変数、ライブラリ・ルーチンに
とって悪いパラメータ数値、変数に割り当てられた変な値、また、沢山のもの。
どんな神秘的なマシン例外もありません -- あなたはプログラムを
実行する時に起こる問題を、完全な英語の記述で知る事ができるでしょう。
呼び出しスタックトレースの後部とあなたの変数値のダンプすべてとともに。
プログラムを直ぐに、簡単に、そして、徹底的にデバッグできます。
0003デフォルトの名無しさん
2005/06/30(木) 21:54:41プログラムはバイトオーダー値などの意識していて語長を、
基本的でないビットレベル表現です。
・多ファイルのエディタ、フルスクリーンソースデバッガと実行型プロファイラは
フルスクリーンと共に含まれています。 カラーモニタの上では、エディタは、
括弧の巣篭もりのコメント、リザーブドワード、組込み関数、文字列、
およびレベルを目立たせるように複数の色におけるEuphoriaプログラムを表示します。
努力をタイプして、構文誤りを抑えながらあなたを救って、それは任意に
声明の自動完成を実行します。Euphoriaにこのエディタを書きます、そして、
制限なしでソースコードをあなたに提供します。 あなたは、それを変更して、
特徴を加えて、願っているように自由にそれを再配付することができます。
・Euphoriaのプログラムは、リナックス、FreeBSD、32ビットのWindows、
およびどんなDOS環境でも実行されて、どんな640Kのメモリ制限も受けることがありません。
あなたはあなたのコンピュータの完全な多メガバイト記憶を使用するプログラムを作成することができます、
そして、プログラムがあなたのマシンの上に存在しているより多くのメモリを必要とするとき、
スワップファイルは自動的に使用されます。
・あなたは一つの、スタンドアロンな.exeファイルをあなたのプログラムから作ることが出来ます。
・Euphoriaルーチンは自然に一般的です。 以下の例のプログラムは、
それはどんなタイプに関するデータも分類するでしょう -- 整数、文字列の浮動小数点の
数などをただ一つのルーチンに示します。 Euphoriaが「オブジェクト指向」の言語でない、
しかし、それははるかに簡単な方法でこれらの言語の利益の多くを達成します。
00041
2005/06/30(木) 21:55:57申し訳ない。
0005デフォルトの名無しさん
2005/06/30(木) 21:55:57それはどんなタイプに関するデータも分類するでしょう
もうちょっとちゃんと訳してくれたら使ってみる
00071
2005/06/30(木) 21:58:38sequence list, sorted_list
function merge_sort(sequence x)
-- put x into ascending order using a recursive merge sort
integer n, mid
sequence merged, a, b
n = length(x)
if n = 0 or n = 1 then
return x -- trivial case
end if
mid = floor(n/2)
a = merge_sort(x[1..mid]) -- sort first half of x
b = merge_sort(x[mid+1..n]) -- sort second half of x
-- merge the two sorted halves into one
merged = {}
while length(a) > 0 and length(b) > 0 do
if compare(a[1], b[1]) < 0 then
merged = append(merged, a[1])
a = a[2..length(a)]
else
merged = append(merged, b[1])
b = b[2..length(b)]
end if
end while
return merged & a & b -- merged data plus leftovers
end function
00081
2005/06/30(木) 21:58:49-- generate sorted_list from list
list = {9, 10, 3, 1, 4, 5, 8, 7, 6, 2}
sorted_list = merge_sort(list)
? sorted_list
end procedure
print_sorted_list() -- this command starts the program
0009デフォルトの名無しさん
2005/06/30(木) 22:02:14先ず、オブジェクト指向ではありません。
ついでにいうとBASICに近い、といえます。
0010デフォルトの名無しさん
2005/06/30(木) 22:03:14Euphoriaならコレが違う!ってのを提示してもらえると嬉しいです。
0011デフォルトの名無しさん
2005/06/30(木) 22:03:52じゃあ魅力を感じないなあ……
00121
2005/06/30(木) 22:06:23>>10
速度が速い、プログラムをCに変換してそのままコンパイル出来る。
また、Euphoriaは高速にプログラムを開発することを念頭において開発されています。
0013デフォルトの名無しさん
2005/06/30(木) 22:08:41具体的に提示していただけると嬉しいです。
今日は酔ってるので実際にやる元気がないです。すまん
0014デフォルトの名無しさん
2005/06/30(木) 22:24:59ユーフォリア?
0015デフォルトの名無しさん
2005/06/30(木) 22:37:020016デフォルトの名無しさん
2005/06/30(木) 22:51:540017デフォルトの名無しさん
2005/07/02(土) 14:19:170018デフォルトの名無しさん
2005/07/04(月) 23:57:21不定形で複雑なデータ構造が扱えるのは、使えそう。
0019デフォルトの名無しさん
2005/07/06(水) 13:16:36多態の事だと思う。
>>3って、かなり古い内容なんじゃないかな。後発の言語なら殆んどサポートしてる事なのに。
最先端な割りには、10年以上の歴史があるとか...は、まぁ。どうでもいいとして。
+ 処理系のコンパクトさ, linuxだと、static linkで150kb程度。
euphoria処理系自体がその言語で書かれている。
+ 行列の演算, スライスの inplace operation。
+ Machine level interface,
特に珍しい特徴ってわけでもないけど。
実装で分類するならHigh Level Assembler的な位置付け。言語的には特に目立った特徴なし。
> b = b[2..length(b)]
b = b[2..$]とも書ける。
0020デフォルトの名無しさん
NGNG速いってのがいい
0021デフォルトの名無しさん
2005/07/09(土) 18:19:25ゲーム作ったりするような。
OpenGLとかで3Dシューティングとか。
0022デフォルトの名無しさん
2005/07/10(日) 12:08:40実用的なプログラム作るとなると、標準ライブラリが少ないので。
C言語と同様、システムに依存する部分の知識が要求される。
部分的になら、Python + Pyrex + Psyco + Numpy + Py2exe に相当する能力はあるけど、
既存のスクリプト言語と比較すると、利点より足りない部分の方が多いと思う。
カプセル化がないとか、その辺りの事を実行効率とのtrade offと捉えらえるかどうかで評価が別れそう。
+ C言語との相性。スクリプトないでdllを呼べる。-- rubyのdl/importやpythonのpyrexより簡単に
+ 標準で付いてたデバッガは初心者にとっても使いやすいと思う。(perlやpythonの標準デバッガと較べて)
0023デフォルトの名無しさん
2005/07/10(日) 12:50:07oobkキター
0024デフォルトの名無しさん
2005/07/10(日) 14:48:430025デフォルトの名無しさん
2005/07/10(日) 14:53:290026デフォルトの名無しさん
2005/07/10(日) 17:52:29atom型だと大丈夫だけど、限度があるみたい。bignumは自分で実装しろってことなのかな。
- float型がない? 計算が出来ないわけじゃないけど、型として存在してないのはどうして。
+ 実行時エラーの時はcore代わりに、テキストでエラー時の環境情報ex.errファイルを吐き出してくれる。
-- 配列の演算
sequence a
a = {1, 2, 3}
? a * 10
? a + a
a[2..$] += 10
? a
? {{1,2},{3,4}} + {{5,6},{7,8}}
-- 実行結果
{10, 20, 30}
{2, 4, 6}
{1, 12, 13}
{{6,8},{10,12}}
0027デフォルトの名無しさん
2005/07/10(日) 17:56:00type natural(integer number)
return number > 0
end type
function factorial(natural number)
if number > 2
return number * factorial(number-1)
else
return 1
end if
end function
perlやpythonでもこれらと同様の仕組みは簡単に作れるけど。
Euphoriaのアドバンテージは、これが標準機能で(perl/pythonでやる場合に較べ)オーバーヘッドが少ないところ。
...
# クラスなくてもいいけど構造体くらいは欲しいなー。
0028デフォルトの名無しさん
2005/07/10(日) 18:16:16登録してなくても使えるけど、
実行時に、メッセージがでてきて少し待たされてから目的のコードが実行される。
登録はその制限を外す為のものらしいです。
ソースにあるのかなと思ったけど、肝心な部分はやっぱりblackbox。
ecu.a へはstatic linkされてて、ecu.aのソースコードは公開されてないみたい。
■ このスレッドは過去ログ倉庫に格納されています