2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Oh!MZにお世話になった人のスレ

1 :絵夢絶倒:01/12/23 18:15.net
S-OSには世話になった。
いろいろ遊べた。
機種の壁を越えたコミュニティがあった。

263 :ナイコンさん:03/04/05 14:10.net
皿までどーぞ 1 舌っ足らずの言語学
          OH!MZ '84年4月号

 事情通の方々は御存じのように,私は1年
ほど前には,この雑誌でその筋のことを
していたのであるが,実は1年ほど某国某所
に行っていたのである。そこらへんの事情
は深い霧に包まれていて,一向に明らかに
なる予定はないのである。そういうわけで,
私は舞い戻ってきたのだが,なぜかX1ばか
りに触ってる毎日なのである。時には,な
ぜMZに触らぬのか? と尋ねる人がいる
が,そういうときは,まだ有効期限の切れ
ていないパスポートが,力強い味方であっ
たりするのだった。 結局,そういうことで
成田に着いたとたんに極×非×の編集者達
に拉致され,このように,連載を書くこと
になった。そのうち某国某所のことも書く
予定なので,ひとまずはよろしくというこ
となのである。
 LISPは,リスト処理用の言語である。
最近では人工知能の研究が脚光を音符びてい
るので,自動的にこの言語およびPROLOG
も注目を浴びているようである。LISPは
構造がわりと単純で,また一見おもしろそ
うなのでけっこうパソコン用に移植されて
いて,マイコニストにとってはわりと身近
な言語だと思うのである。

264 :ナイコンさん:03/04/05 14:12.net
 そして私はいきなりLISPにづいて書く
という,マイナーな所業に。落ち込むのだ。
 初めに断っておくけど,私はLISPを快
くは思ってない。むしろ,はっきり言わ
せてもらうと,憎んでいると言ってもよい
ぐらいなのである。その,くら−い理由は,
後々につまびらかになる予定だ。
 この世には,ハッカーと呼ばれる方々が
いて,このハッカーの生態については,ア
スキー誌などあちこちで研究が進められて
いるようだ、。私見によると,下記の各種ハ
ッカーが確認,登録されている。
 @日本特産マシン語ハッカー。貴重な青
  春を費やし機械語を暗記し,日夜16進
  数をパカパカと打ち込む。重症になる
  と機械語を暗記していることを自慢し
  だす。
 Aアセンブラハツカー。マシン語ハッカ
  ーの成虫。BASICを作っている人間は
  大体これである。
 BCOBOL,FORTRAN,BASICハッカ
  ー。神よ彼らに救いあれ。
 CFORTHハツカー。彼らは無敵である
 (と,彼らは思っているらしい)。


265 :ナイコンさん:03/04/05 14:13.net
 そして,LISPERである。彼らはLISP
ハッカーと呼ばれることはないのである。
なぜならば,言葉としてはLISPERのほ
うが古いからなのである。つまり,LISPE
Rは,ハッカーの本家と言えるのかもしれ
ないのだ。
 LISPは,あの幻の超古代岩語FORTR
ANに次いで古い言語である。50年代に,
ALGOLより先にできたのだ。そしていっ
たん,こいつにのめり込むと,首までつか
ってしまうという,実に恐ろしい言語らし
いのだ。
 しかし,人に取りつくからといって,別
に悪い言語だというわけではない。勝手に
やってもらう分には,異存はないのである。
この線から,こっち側に入らないでほしい
のである。
 ところが−−彼らの中の一部は,ときど
き血迷って,「LISPは美しい」とか,「LISP
は偉大な言語だ」とか,大をも恐れぬ雑言
を吐き出すのである。何が美しくて偉人な
のかは知らないけれど,そういう場分は「私
はLISPを美しいと思う」程度に留めてい
ただきたいのである。いたずらに他人をい
らだたせないようにしてほしいのだ。
 これで,私がLISPを憎んでいる理出の
ひとつが明らかになった。すなわち,LIS
P愛好家の中には,とても困る人がいるか
らなのだ。そしててちゃんとした理由でも
私はLISPが嫌いなのだ。


266 :ナイコンさん:03/04/05 14:14.net
 まず,あのカッコである。その筋の人々
は,リストを表三呪するためどと占って,強
気なのである。ところが,前述のとおり,
LISPは占い言語である。ということはそ
の当時のコンピュータ事情を引きずってい
るわけなのだ。その当時は小文字の出るタ
ーミナルが少なかったからだと思うのだが,
LISPの文字セットは大文字なのだ。そし
て、大文字で書かれたものは一般に読みづ
らいのである。これとカツコの嵐に一度に
襲われては,たまったものではない。LIS
P関係者の方々は,あの非人問的なテキス
トを,どうにかしようという気があるのだ
ろうか。
 実は,「一部にはその気配はある。それは
スーパーカッコと呼ばれるものの採用で,
”[”,”]”(四角いカッコ)で表わされる。
これは,「何個でも面倒みるよ」というカッ
コである。
(((DUMMY)))は,一一
(((DUMMY]だけですむわけなのである。

 ところが,このスーパーカッコは非常に
便利なのだが,実はあなたが将来使うかも
しれないLISPに,この機能があるとは限
らないのだ。触利だから,あちこちで採用
しているというだけなのだ。


267 :ナイコンさん:03/04/05 14:15.net
 そう,私は標準について話し始めるのだ。
LISP自体には標準は存在しない。前述の
スーパーカッコを使用した場合は互換性を
失う危険があるのだ。この場合は単純な置
き換えだけでは解決しないから,最悪の部
類に入る。
 もっと滅茶苫茶なことがある。LISPの
プログラミングは,「関数を定義する」と
いうことと同義なのだが,「関数を定義す
るための関数」の名前さえ統一されていな
い。『LISP入門』(培風舘)によれば,L
ISPは,LISP1.5,MACLISP,INTER
LISP,StanderdLISP(という名の方
言),その他の5系統(!?)に分類できるそ
うである。その中で圧倒的に多いのは,「そ
の他」だそうである。そして,その本の中
には,LISPの方言の比較がなされている
が,その部介を読むと互換性が乏しいこと
がよくわかってしまうのである(ただし著
者はLISPが統一される可能性もないわけ
ではない,とも言っている。念のため)。


268 :ナイコンさん:03/04/05 14:17.net
 次に.言わせてもらうのは,LISPのハナモゲラ性である。代表的なところでは,
CARとCDRであるが,この関数名の由来はいかにもLISPの引きずっているものを
反映している。すなわち,これはLISPがはじめて稼働したIBMのマシンに起源がある
のだ。覚えてしまえばなんでもないのだが,LOGOの ”first”,”butfirst”と較べれば,
とっつきやすさに人きな差があることは確かである。しかし,これらの2つの関数名
にも確かに利点はある。CAAR,CADRなどの関数名を作れるということである。そ
して,これは同時にLISPのハナモグラ性をますます強化することにもなっているの
だ。他の例を挙げると,RPLACD,GNC,CSYM,SUBSTなどがある。これらは動
作の意味を縮めたものであり,やむを得ぬ命名なのであろう。しかし,これらの関数
は組み込みであり,使用者はこれらの関数を記憶することを期待されている。これは
初心者には,かなりの重荷である。そして,やっと覚えたにしても,その関数名が他の
LISPにも存在する必然性はないのだ。もっと恐しいのは,存在しでいても動作が異
なる場合である。この場合は,一般にもっともたちの悪いバグになりうる。おーこわ。
私は本で見つけた面白そうなプログラムを,大型計算機のTSSで実行しようとして,四
苦八苦した経験がある。LISPのシステムでは,組み込み関数に差があるのは自明で
あるということを私は知らなかったのである。


269 :ナイコンさん:03/04/05 14:18.net
 ハナモグラ性は,関数名だけではなく,LISP用語にもあるのだ。LISPを本当に
理解しようとすると,必ずひっかかってしまうのだ。たとえば関数型を表現するEXP
R,FEXPR,NEXPR,LEXPR,SUBR,CSUBR。このハナモグラ性について私の
想像を書いてみる。LISPERは,エディタを使わずに直積キーボードからプログラ
ムを打ち込むケースが多いらしい(これがLISPERの定義になることもある)。LIS
Pの中心地の米国では,ほとんどのプログラマーは,高速タイピストでもあるから,
そうなるのである。またLISPを使う人間は,LISPしか使わないという場合が多く,
必然自勺に長い名前を使って記憶に便利にするよりも,短くして速く打ち込めるように
したほうがよい,ということになる。つまり,LISPの専門家は後世の初心者が首を
ひねることなどは意に介しなかったのである。結局LISPは専門家によって,専門家
用に作られたのだ。これはLISPに互換性が乏しいということと一対をなすのだ。他
の研究者と互換性について話し合うより先に,それぞれの研究所、大学で、LISPがし
っかり進化してしまうからである。 以上は私の想像にすぎないのだが,互換
性が問題になっているBASICでも同様なことが言える。互換性などよりも,自社のB
ASICの性能を上げることのほうが重視されているのである。


270 :ナイコンさん:03/04/05 14:19.net
 前述の『LISP入門』は,この文章を書いている最中に見つけた。同書は,入門書
としてはかなり良くできていると思う。しかし著者の方には申しわけなしこが,同時
にLISPの欠点を知るにも良い本である。たとえば,同書の42ページ日には,2次方
程式を解く23行のプログラムが載っている。こ、れは明らかにLISP向きの問題ではない
が,その占を割り引いたとしても実に読みづらいプログラムになっている。加減乗除
が,+,−,*,/,ではなく,PLUS,DIFFERENCE,TIMES,QUOTIENTの
各関数を使って,順ポーランド記法で書かれていることがガンになっているようであ
る。次に同音を読むと,繰り返し実行用のLOOP関数に∴往換性がないこともわかる
のである。同じLISP1.9でも,LOOP関数があるとは限らないとのことである。




271 :ナイコンさん:03/04/05 14:19.net
(DE QUADRATICEQUATION(A 8 C)
(COND【(ZEROP A)
    (COND【(ZEROP B)(PRINT 'LLEGAL】
        【T(PRINT 'NON−QUADRATIC)
           (PRINT(MINUS (QUOTIENT C B】】
    【(ZEROP(D))
     (PRINT 'DUPLICATE−REAL)
    (PRINT(MINUS (QUOTIENT B (TIMES 2 A】
    【(GREATERP(D)0)
     (PRINT 'TWO−REALS)
      (PRIT (QUOTIENT(DIFFERENCE(SQRT(D))B)
                    (TIMES 2 A)))
    (PRINT(QUOTIENT(MINUS(PLUS(SQRTくD))B))
                (TIMES 2 A】
     【T
      (PRINT 'COMPLEX)
      (PRINT 'REAL−PART)
     (PRINT(QUOTIENT(MINUS B)(TIMES 2 A)))
      (PRINTl 'IMAGINARY−PART)
     (PRINT(QUOTIENT(SQRT(MINUS(D))
                (TIMES 2 A】】
(DE D ()(DIFFERENCE(SQUARE B)(TIMES 4 A C】
(DE HINUS(X)(TIMES −1X))

272 :ナイコンさん:03/04/05 14:22.net
 以上,門外漢の私がうだうだとLISPの悪口を書くという,大をも恐れぬ所業をし
たのであった。
 本音を占うならば,実は私はLISPに落ちこぼれたのである。LISPという諾語の
意味しているところがわからなくていらだっているのだ。CAR,CDRはわかる。リス
ト構造もわかる。再帰もわかる。ところが,自分がなぜLISPを使っているのか理解で
こきなくなるのだ。特にLISP向きの問題もあるが,実は他の言語でも大抵の場分解け
る。むしろ,私にはカッコと大文字でわけのわからないプログラムよりも理解しやす
いのである。つまりLISPを使う必然性がないとしか思えないのである。
−繰り返すが,私はLISPが非力だと言ってるのではない。LISPに必ず付いてまわ
る,非本質的な部分が大嫌いなのだ。言語は正しく統一されるべきだし,小文字を取
り込むべきだし,あのカッコをどうにかすべきなのである。    
 現在の日本では,LISPはマイナーである。我田引水だが、このLISPに落ちこぼ
れた人間のたわごとを考えてくれなければ,LISPはいつまでも研究所の中だけで,お
どろおどろしく動めくだけではないのだろうか?



総レス数 1000
226 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200