Dylan
■ このスレッドは過去ログ倉庫に格納されています
0001Bob
NGNG使い方分からん。
教えて。
0002Self
NGNGココは見た?
http://www.na.rim.or.jp/~kusumoto/dylan.html
0003デフォルトの名無しさん
NGNGそのページ、ことごとくリンク切れ・・
0004Bob
NGNG0005デフォルトの名無しさん
NGNG0006Bob
NGNGうん、不知の病みたいなの・・・
0007デフォルトの名無しさん
NGNGschemeベースのやつ?
0008Bob
NGNG何それ?
知らないけどあるのそんなの?
教えて!
0009デフォルトの名無しさん
NGNGlisp/schemeスレにリンク貼ってあったよ
0010デフォルトの名無しさん
NGNGSchemeみたいにマクロもあってSchemeとほぼ同等の
強烈な記述力があるらしい。もともとはS式も可能
だったらしいしね。
普通の読みやすい記法でSchemeの柔軟性を実現してる。
0011デフォルトの名無しさん
NGNG興味津々age
0012デフォルトの名無しさん
NGNG0013Bob
NGNGα版は既に出てる!
http://www.fun-o.com/
Herlequin Dylanの開発部隊が独立してたみたい。
Amazonで本買おうと思うんだけど、炭疽菌付いてこないかな。。。
0014デフォルトの名無しさん
NGNGとりあえず、ダウンして解凍したけどなんかよくわからない。
0015デフォルトの名無しさん
NGNGとりあえず、フォルダ構成はCygwinっぽくて、ファイルの中身を見ると、
Perlスクリプトがあるね。
だからCygwinとActivePerlは必須みたいだね。
で、頑張って、make-dylan-appスクリプトを実行して、helloアプリの
プロジェクトを作り、makeしてみたけど、途中、mv failed?の
メッセージで止まる。mvはあるんだけどなあ。。
うーん、わからん・・・
0016デフォルトの名無しさん
NGNG001715
NGNGほんとだ。読んで無かったよ。
ちゃんとcygwinの環境変数を設定した後libtoolインストールしたら出来た。
ActivePerlでも明示的にperl -wで呼べば#!無視してくれるので問題ないね。
でもlibtoolのテストかなり失敗してたなあ・・・いいのかなあ。
HelloWorldアプリにコンパイル時間が結構かかってたのが気になる・・・
コンパイル遅いね。
0018Bob
NGNG0019デフォルトの名無しさん
NGNG0020Bob
NGNGコンパイルの仕方すら分からんのですが・・・
002115
NGNGDylanわからんから試せないけど、Cに変換してから
コンパイルしてるから結構早いはず。
>>19
// file : hi-exports.dylan
module: dylan-user
define library hi
use common-dylan;
use io;
end library;
define module hi
use common-dylan;
use format-out;
end module;
// file : hi.dylan
module: hi
define function main(name, arguments)
format-out("Hello, world!\n");
exit-application(0);
end function main;
main(application-name(), application-arguments());
// file : hi.lid
library: hi
executable: hi
files: hi-exports
hi
>>20
俺Cygwinで使ってるよ。説明どおりに実行しただけ。
Perlスクリプトmake-dylan-appでHelloWorldスケルトンを作って
いじったあと、makeするらしい。
0022Gwydion Dylan版
NGNG// hello.dylan
module: hello
synopsis:
author:
copyright:
define method main (appname, #rest arguments)
format-out("Hello World !\n");
exit(exit-code: 0);
end method main
// hello-exports.dylan
module: dylan-user
define library hello
use dylan;
use format-out;
end library;
define module hello
use dylan;
use extensions;
use format-out;
end module;
// hello.lid
library: hello
executable: hello
entry-point: hello:%main
hello-exports.dylan
hello.dylan
// compile
$ d2c hello.lid
0023Bob
NGNGこれ使ったらとりあえず骨組みだけはできるみたいです。
Makefileまで作ってくれるのでコンパイルもできました。
ところでDylanってLispみたいなインタラクティブな
インタプリタ環境ってないんですか?
インクリメンタルに定義したりコンパイルしたりしながら
開発していくのが好きなんですが。。。
0024デフォルトの名無しさん
NGNGツクレッ!
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG俺は2.3MB・・・
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGVineLinux2.1.5 + GwydionDylan2.3.4
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG凄い言語らしいのにマイナーな理由がわかった。
0031デフォルトの名無しさん
NGNGネエィティブコンパイルを夢見たJAVAみたいな大きさだな・・・(遠い目
0032Bob
NGNG5359 bytes
Debian woody + 2.3.6pre2cvs10182001-1
0033デフォルトの名無しさん
NGNG>我々が最初の C++ コンパイラをAT&Tで開発したとき、
>"Hello World"プログラムをコンパイルしたバイナリの大きさが信じられませんでした。
>2.1MBですよ。
ちょっと違うか。しかもこれは冗談だし……。
0034デフォルトの名無しさん
NGNG0035Bob
NGNGプロンプトが出るけどCommon Lispみたいに
インタラクティブに定義したりできないよ?
使い方わかんないよ。
なんだかドキュメントが少ない。。。
0036Bob
NGNG0037デフォルトの名無しさん
NGNGいや、わたしも使い方がわからないんですよ。
私はDebian sidでDylan環境作ったんですけど、
ドキュメントが殆どないし、本家のページにあるサンプルすら
その通りにやっても動かないし。
d2c は問題ないんだけど。
で、mindyはバイトコードインタプリタみたいね。
mindycompでコンパイルして、mindyで動かす感じらしい。
0038Bob
NGNGバイトコードにしてデバッグするのに使うのかな。
Common Lispみたいな環境ってないのかな。
0039Bob
NGNG0040デフォルトの名無しさん
NGNG0041Bob
NGNGでもGwydionってそんなに遅いの?
Functional Developperはどう?
一番痛いのはProgramming Dylanとかいう本が絶版で手に入らない・・・
誰かくれないかなー。
0042_
NGNG0043デフォルトの名無しさん
NGNG特徴は、可読性が高く柔軟でオブジェクト指向な言語仕様かな。
これが素晴らしいと思う人がたくさんいるのでは。
0044Bob
NGNG後ね、クラスとメソッドの関係がC++,Java,Pythonなんかと違うのよ。
CLOS風のディスパッチでこれがなかなか逝けてんの。
このタイプを採用してる言語ってCLOSとDylan以外に何があるのかなぁ。
0045_
NGNGちょっと調べてみたけどなんか難しい単語がいっぱい(w;
Abstract Class,Instantiable Class,uninstantiable class,indirect instance,general instance・・・
使ってみないとありがたみがわからないかも。試してみるか。
0046デフォルトの名無しさん
NGNGもうちょい突っ込んで、キボン
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG書いたコードをlistnerでテストする、scheme風の使い方のときはいいけれど、
仕上げに入るとめちゃめちゃいらいらした。
Functional Developerはマシになったかな?
0049Bob
NGNG>>47
それもDylan気に入ってる理由の一つ。
だから余計にインタラクティブな実行環境欲しいのよね。
0050デフォルトの名無しさん
NGNGサンプルってhelloとhanoiだけなの?
ちょっと冷たすぎないか?
0051デフォルトの名無しさん
NGNG決定だな。
0052デフォルトの名無しさん
NGNGAppleが手を退いたのはNeXTとの絡みかも知れないけど。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGAppleとCMUの共同開発だったと思うゾナ
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGDylanの出自に関してはDylan Programming Languageに歴史が
書いてあった(と思うけど、押し入れに収納されててちょいと
見つからない)。たしか、Appleの各研究チームがそれぞれに別
の言語を使っていて、お互いの研究成果を取り入れるにはわざ
わざ相互に移植する必要があって、これが無駄だと思われたわけ。
それで一番強力なCommon Lispに一本化しようとしたんだけど、
開発中は良いとして、バイナリを配布するのに向かないところが
問題だった。また、Lispの構文を嫌う向きも少なくなかった。
それでDylanが開発されることになった。
……のですが、結局、コンパイル速度も出なかったし、気がつく
とJavaの波も押し寄せ、NeXTも買収し……というわけだったと
思いますね。かつてのAppleだったらDylanに固執して、さらに
シェアを落としていたようにも思いますが。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGDelphiみたいな。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG> ……のですが、結局、コンパイル速度も出なかったし、気がつく
> とJavaの波も押し寄せ、NeXTも買収し……というわけだったと
> 思いますね。かつてのAppleだったらDylanに固執して、さらに
> シェアを落としていたようにも思いますが。
単に今 Objective C がいる場所に Dylan がいるようになっていただけでわ?
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGそこそこスペック高いマシン買ったんで、gwydionっての
入れてみようかと思ってるんだけど。
http://www.gwydiondylan.org/
0075デフォルトの名無しさん
NGNGスレ主は解ってなさそうだし、
なんでこんなスレがあるのかわかんない。
007673
NGNGつうか死ねや糞ども。
だれか削除以来出せ。クソスレ。
0077デフォルトの名無しさん
NGNGワラタ
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG*Common Lispの開発効率
*methodを書いて、その場でテストできる。
(Listnerという、コマンドラインのようなテスト環境がある)
*methodはクラスに属さない。genericに書く。
(もちろんmoduleによって名前空間を分割できる)
*コンパイル単位とモジュール単位をファイル単位から独立に定義できる。
(あるモジュールの一部のmethod定義を変更しただけでモジュール全体
を再コンパイルする必要はない。)
*強力なマクロ
(Lispのように言語仕様を拡張・再定義することが可能)
*小さなランタイム
*Lispだと、事実上、開発環境の一部をそのまま配布しなければならない
が、その必要がない。
0082デフォルトの名無しさん
NGNGってこと?
0083デフォルトの名無しさん
NGNGじゃだめなのか
0084デフォルトの名無しさん
NGNG*コンパイラの負担が大きい
*method単位でコンパイルせずにテストできるのは開発の初期段階であって、
パフォーマンスチューニングの段階では修正→再コンパイルを繰り返し行
う必要がある。Dylanはコンパイラにかかる負荷が大きく、コンパイル時間
がかかる。
*研究開発に使うのであれば、Common Lispで十分である。Dylanのメリット
の生きる分野は、開発環境から切り離されたアプリケーションの開発であ
る。この分野では実行時のパフォーマンス(より具体的にはGUIの動作速
度)が重要であるが、実行時パフォーマンスのチューニングにおいて
Dylanの欠点が目立つという皮肉。
あと、書き忘れてたけど、Dylanのメリットとして、
「出来上がったコードが読みやすい」
ってのがある。コードが読みやすいと、ドキュメンテーションに凝らなくても
済むのでイイってことだな。
しかし、Common LispのランタイムをOSに添付しちまえばすべてクリアって気
がしないでもない。NeXT STEPにおけるObjective-CランタイムがOSのコアだっ
たように。Lisp OSは、今なら実用的な気がするなあ。
0085ゆんゆん
NGNGどこかで
・内部はLisp/Smalltalk並に動的で
・ユーザ向けはvery-high-levelな言語で
・UNIX精神なプログラマ向けOS
って作ってないのかな
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGOpen Boot も、ある意味 Forth OS.
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGForthがスタック言語なのは、スタックの実装が簡単だから。
Lispがリスト言語なのは、リストの実装が簡単だからではなく、
リストが「強力」だから。
スタックはリストほど強力とはいえないよな。
0091デフォルトの名無しさん
NGNGLisp も後置記法だったらカッコが無くなって良かったのに。
RPNLisp> 1 2 cons car
1
みたいな。何時か作ろうと思ってるんだけど、どうかな?
0092デフォルトの名無しさん
NGNGカッコの対応やインデントくらい、エディタが支援してくれますし、
読むときにはカッコなど見なければ良いだけです。
0093デフォルトの名無しさん
NGNG>RPNLisp> 1 2 cons car
Forth系は暗黙のpush/popがあるから、
決してLISPよりも人間に易しいとは言えん。
前置記法は可変長の引数をごく自然に扱えるし、
他のCなどの言語の関数呼び出し構文と同じだから直ぐに慣れる。
0095デフォルトの名無しさん
NGNG貴方は困らないかもしれないけど、人間に易しいとは言いづらいのでは?
>>93
可変長の引数が扱えるのは前置記法だからじゃなくて、リストでまとめる
からでは? そういう意味では後置記法でも問題ないと思います。
0097デフォルトの名無しさん
NGNG>貴方は困らないかもしれないけど、人間に易しいとは言いづらいのでは?
カッコが人間にやさしくないとしたら、セミコロンで式をセパレートするのも
人間に易しくないんじゃないの。
繰り返しになるけど、カッコの対応とインデントはエディタに任せることが
できる。だから書くときには問題ない。
読むときも、なんならカッコを一時的に見えなくする機能をエディタに持た
せれば良いわけです(僕はカッコを見ないという方法で対処していますが)。
前置記法が嫌いなら、マクロを書けば良いんじゃないですか。
Forthにそういうパワーがあるとは思えないんですけれど。
# すでにめちゃめちゃスレ違いだな。で、sage
0098デフォルトの名無しさん
NGNG引数をリストで取る、リストのサイズは可変という意味だと
思ったんだけど、違う?
それとも、cond の後に幾つでも条件文を書けるみたいな事?
これも後置記法で簡単に実現可能だと思うけど。
0099デフォルトの名無しさん
NGNGこういうのはどうするの?
1 2 3 4 +
だと駄目なんじゃない?
0100デフォルトの名無しさん
NGNGエディタの機能に頼ったり、マクロを書いたり、コードの一部を無視しないと
読みにくいって、御自分で分かってらっしゃるじゃないですか。
カッコとセミコロンと大差無いって、本当にそう思います?
Forth が読みにくいというのは理解してますが、Lisp も大して変わらないの
では? と思います。
0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています