パスワードを忘れた? アカウント作成
5764 story

Postscriptで「ライフゲーム」 35

ストーリー by Oliver
トナーまみれの人生 部門より

dseg 曰く、 "本家より。Postscriptを使ってコンウェイの『ライフゲーム』をプログラムしたヤツが現れた。それぞれの「世代」のスナップをプリンタに送り込んで実際に印刷させる事もできるという。 Postscriptは現アドビシステムズ会長のジョン・E・ワーノックが開発したページ記述言語。立派なプログラミング言語なので、原理的にはこういうものも組めるのだろうが、本当に作った作者氏に脱帽...。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • > それぞれの「世代」のスナップをプリンタに送り込んで実際に印刷させる事もできるという。

    若干の変更が必要です (1000 枚もまずいので 10 枚に変更)

    --- life.ps.org 2003-05-27 07:04:13.000000000 +0900
    +++ life.ps 2003-05-27 07:17:52.000000000 +0900
    @@ -21,7 +21,7 @@
     
      /size 70 def
      /cellsize 5 def
    -/numgens 1000 def
    +/numgens 10 def
     
      /get2 {
            3 1 roll get exch get
    @@ -153,6 +153,6 @@
     
      ar ar2 arcpy
     
    -numgens { disp DoGen } repeat
    +numgens { dispPage DoGen } repeat
      disp
      showpage
  • by nitonito (2431) on 2003年05月27日 8時53分 (#323540)
    その昔、NeXTではPostscriptでコードを書くなんてのは、プログラミング上当たり前でした。
    NeXTは、WYSIWYGを実現するために、画面描画にDisplay Postscriptを採用してました。
    確かこれは、AdobeとNeXTが共同で開発したものです。
    そのため、ちょっと凝ったことをやるのには、Postscriptで関数を書き、
    それを*.pswというファイルで保存し、Objective-Cから利用します。
    これらの仕様はAdobeによってX環境に移植されたので、IBMのAIXやSunのSolarisなど、
    Display Postscriptを採用した環境では同様のプログラミングが可能だったと思います。
    サンプルもついてたけど、糞重たかったのを覚えています。
    • by mpls (8235) on 2003年05月27日 12時11分 (#323626) 日記
      YAP.app がなかなかよかったですよね。
      簡単な図は自分で PostScript 書いて TeX に張り込んでました。

      PostScript でハノイの塔やってる人がいた記憶がありますが。
      # と召還してみるテスト
      --
      --- show mpls ldp neighbor
      親コメント
  • by Anonymous Coward on 2003年05月27日 5時26分 (#323513)
    昔fjでこんなの [google.com]もありましたね・・・
  • by habe (11732) on 2003年05月27日 10時18分 (#323575)
     ちょっとオフトピック気味ですけど。
     PostScript は反復と条件分岐が備わっているからそれなりにプログラムが書ける訳ですよね。そのような要素がない言語。例えば SVG [w3.org] と XSL [w3.org] でライフゲームを実現するのは無理なんでしょうか。
    • by nitonito (2431) on 2003年05月27日 10時55分 (#323589)
      少なくとも、SVGは仕様の中にscriptタグを含んでいて、ECMAScriptを定義できるので、
      問題なく実現可能だと思います。
      SVGって、Flush対抗技術なんだからそれができないと困ると思います。
      実際、僕もSVGとJavaScriptでインタラクティブなツールを開発したことがあります。
      ECMAScriptを使ってはダメというなら、かなり厳しいというか、できるの?という感じですけど。
      親コメント
    • by watson (11986) on 2003年05月27日 14時41分 (#323688)
      XSLTは条件分岐があって再帰が出来るので、ある程度は色々出来ると思います。

      以前、XSL-List [mulberrytech.com]で、N-Queenを実装するなんていうのがなんていうのが出たことがありました(ここ [orbeon.com]に動作するものがあるようです)。

      XSL Chess [orbeon.com]なんていうのもありますね。
      親コメント
    • XSLの仕様見ると、頑張ればできそうな感じですね。
      パターンマッチによる比較と分岐はあるようです。
  • by kyle (3923) on 2003年05月27日 12時53分 (#323645) 日記
    この手の話でいつも思い出すのが、TeX で書かれた Basic の BaSiX [ibiblio.org]。名前がふるってます。

    以前どこかで、各言語ごとの Basic インタプリタ実装を集めたページを見た記憶があるんですが、見つからないなあ。

    • > 以前どこかで、各言語ごとの Basic インタプリタ実装を集めたページを見た記憶があるんですが、見つからないなあ。

      すっかりオフトピですが……ここのことかな [airnet.ne.jp]?
      「各言語ごと」というのがよくわからんので、はずしてるかも。
      親コメント
      • 多分外してるでしょう。

        > 「各言語ごと」というのがよくわからんので、はずしてるかも。
        これは
        「C言語によるBASIC実装」
        「ForthによるBASIC実装」
        「Lispによる…」
        「Smalltalk…」
                        :
                        :
        という事だと思うのですが。
  • by Anonymous Coward on 2003年05月27日 5時59分 (#323514)
    両対数グラフを直接出力していたっけか。
    • Re:先生が (スコア:2, おもしろおかしい)

      by lunatic_sparc (15416) on 2003年05月27日 9時18分 (#323550)
      > 両対数グラフを直接出力していたっけか。

      私も関数グラフまでは出力させたりしていました。
      大学の時、友達がで 8-Queen を直接 LW-II で解かせて
      すごい長い時間『印刷中』にしてしまって、まわりから袋叩きに
      あってたのを懐かしく思い出しました。
      親コメント
    • by Anonymous Coward

      ウチの大学の先生は、フラクタルの話をするのに、 コッホ曲線とかヒルベルト曲線とかドラゴン曲線とかを描くプログラムを postscript で書いて配ってました。

  • by Anonymous Coward on 2003年05月27日 7時37分 (#323523)
    スタック指向(っていうのかな?)言語ですよね。
    Forth みたいな。
    昔、大学にいたとき、素でPS書いて印刷してました・・・
    • Re:PostScriptって (スコア:2, 参考になる)

      by SteppingWind (2654) on 2003年05月27日 11時37分 (#323609)

      単純に印刷するだけなら大体

      1. 使用するフォントを指定する
      2. フォントの大きさを指定する
      3. ページ上の印字位置に移動
      4. 文字列を印字
      5. ページを出力

      の手順で出来ますから意外に簡単だったりします. 特に業務用の帳票みたいに, ページ単位で配置のコントロールをアプリケーションプログラム側で行う場合には, 各印字項目を好きな順番で出力することができるのでプログラマには好評でした.

      親コメント
      • NeXTSTEPって描画がPostScriptで行われてたから、
        画面をミジン切りにするのとか、15パズル状態にするのとか
        スクリプトが書けました。

        でもってそいつを添付ファイルで友人にメールで送って、
        実行させて驚かせたり...

        MacOS Xではできないのかな。
        あれはPDFだからむりかなぁ。
        親コメント
      • by Kinsan (1044) on 2003年05月28日 8時27分 (#324060) 日記
        Postscriptを"喋れる"人って結構いるんですね(^O^)

        私もtext->Postscriptのコンバーターを自作して、線が引けたり、 Postscriptコードを貼り込んだり出来る奴を作ったことがあります。 あと、カルコンプファイルからのコンバーターとか。
        使ってくれる人がいるなら公開するんだけどなぁ。

        それと、そのtext->Postscriptのコンバーターの最初のバージョン では、改行・改頁の判断及び処理をPostscript内でやってました。 そうすると、コンバーターの主な処理はカッコのエスケーピングだけに なるし、プロポーショナルなフォントを選べば、カーニングにも対応できるという優れもの(笑)

        今考えると、sedで20行以下で書けそうなコンバーターですね。

        親コメント
      • by gram (10641) on 2003年05月28日 9時48分 (#324084)
        懐かしいです。
        青本 [ascii.co.jp]、緑本(残念、画像なし) [ascii.co.jp]、赤本 [ascii.co.jp]とか、必携のバイブルでした。
        (赤本って、昔は全面赤かったような気がするんですが)

        職場のPSプリンタでよく遊びました。
        親コメント
  • by Anonymous Coward on 2003年05月27日 10時37分 (#323583)
    が昔々流行っていたのを思い出しました。
    一行には255文字しか詰め込めないけど結構盛り上がっていたような。

    #どんなプログラムがあったか思い出せないのでAC
  • by Anonymous Coward on 2003年05月27日 23時14分 (#323915)
    Adobe PSの吐き出すPSファイルときたら、、、
    しょっちゅうプリンターがお腹壊して便秘になるときたもんだ。

    #Adobe純正、なはず、だよなぁ、、
    #やっぱ2バイト文字圏はおざなりなのか?
  • by Anonymous Coward on 2003年05月28日 11時57分 (#324156)
    ページごとの印刷はできないようですが速いlife.ps [u-tokyo.ac.jp]がここ [matsusaka-u.ac.jp]で紹介されてます。
  • by Anonymous Coward on 2003年05月28日 13時30分 (#324222)
    Postscript についてよく知らないのですが。

    たかが Life Game 程度のプログラムを記述することが、記事になるほど難しい物なのですか?

    Postscript を解釈するには、多くのリソースを必要とするようですが。そうだとしたら、いくら印刷用に作られたとしても、(記述能力/リソース)が低すぎる、駄目な設計のような気がします。

    現在の低価格プリンタといえども、高速なCPUと大きなメモリをもっているはずなのに、ほとんど Postscript を採用していないのも、しかたないと思いました。
    • by SteppingWind (2654) on 2003年05月28日 14時06分 (#324234)

      > Postscript を解釈するには、多くのリソースを必要とするようですが。

      Postscriptの様なFORTH系言語はむしろ最もリソースを消費しない高級(?)言語です. Life Game程度は手慰みに過ぎません. このプログラミング言語としての柔軟性・拡張性がプリンタ用ページ記述言語として10年以上も一線級で使われてきた原因であることは間違い有りません.

      しかし何でも出来るってことは逆に言えばいかようにでもシステムリソースを消費することが可能ってことで, ちょっとしたプログラミングミスや下手なコードで印刷できないという事態に陥ることがあります. 前の方のコメントで有ったように, その反省から出てきたのがPDFで, 通常のコンシューマ向けやオフィス用途ならこれで十分なわけです. 結局低価格プリンタでPostscriptを使うっていうのは鶏を裂くのに牛刀を使うってなもんで, Adobeの高額なライセンスに見合ったものじゃなかったというのが, 現在の普及率の原因と言ってよいでしょう.

      親コメント
typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...