【高速・強力】Euphoria【Win32,DOS,Linux対応】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/06/30(木) 21:54:09ttp://www.rapideuphoria.com/
Win32、DOS、Linuxに対応しており、DirectXやOpenGLなどのライブラリを
動作させることが可能です。
また、スタンドアロンな実行ファイルを生成することができます。
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のソースコードは公開されてないみたい。
■ このスレッドは過去ログ倉庫に格納されています