インプリメンタの部屋

1999/11/27までのログです。


JavaScriptに関する質問 投稿者:おのちゃん  投稿日:10月03日(日)16時44分09秒

質問内容
★★★★★★★★★★★★★★★★★★★★★★★★★★
クリッカブルマップで、ある特定の場所をクリックしたと
同時に、別に設置しているラジオボタンにチェックを入
れたいのですが、どうすればよろしいでしょうか。
教えてください。
★★★★★★★★★★★★★★★★★★★★★★★★★★


=======================
有限会社 メディアウェーブ
尾上 努
e-mail:m-wave@po.saganet.ne.jp
====================

「おのちゃん」への回答 投稿者:徳丸  投稿日:10月04日(月)13時50分20秒

掲示板への書きこみありがとうございます。
回答については、ホームページのQ&Aコーナーに書いておきました。
以下のURLにて参照ください。
今後とのよろしく。

クリッカブルマップによるJavaScript

コンパイラ開発の勉強はどうすればできますか? 投稿者:タケル  投稿日:10月20日(水)01時16分35秒

はじめまして!タケルと申します。
C++に負けないようなオブジェクト指向のBasicコンパイラを作りたいと思ったのですが、
コンパイラの作り方、理論などを勉強するにはどうしたらいいのかが解りません。

なにか参考になる資料などはないのでしょうか?
yaccなどもどういう物なのか解らないので、調べてみようと思ったのですが、
参考になるものが見つからずにいます。
どうかよろしくお願い致します。

「タケル」さんへの回答 投稿者:徳丸(オケゲム)  投稿日:10月20日(水)11時39分42秒

 タケルさん、はじめまして。自作コンパイラの部屋へようこそ。C++に負けないBASIC
コンパイラですか。素晴らしいですねえ。当ホームページは、タケルさんのような方の
ためにあるようなものです。今後とも遊びに来てください。
 私は、ほとんど本だけでコンパイラ作りを勉強しましたが、今ではコンパイラのソース
も簡単に入手可能ですし、インターネットなどで質問することもできるので、その分勉強
も容易になったと思います。
 コンパイラ開発にもっとも必要なのは、「コンパイラを作りたい」という情熱だと思い
ます。その後のアドバイスとしては、

(1)良質の教科書(ドラゴンブックのような)を読む
(2)コンパイラのソースを読む(あまり大きくないほうが良いと思う)
(3)小さなコンパイラを書いてみる。テーマを決めて、テーマごとに書き捨てる
   くらいのつもりでやったほうが良い

などですかね。
 疑問に思ったことは、この会議室で質問してください。答えられる範囲で答えますし、
他の方も答えてくださるかもしれません(希望的観測)。

ありがとうございます! 投稿者:タケル  投稿日:10月21日(木)00時38分03秒

>当ホームページは、タケルさんのような方のためにあるようなものです。
>今後とも遊びに来てください。

見つけた時に感動いたしました、今後ともよろしくお願いします!

さっそくCabezonを見させていただいております、(まずPascalの勉強をしなければっ(笑))
解決できないことがあったら、またよろしくお願い致します。

はじめまして 投稿者:ちゃわ  投稿日:10月21日(木)14時37分59秒

はじめまして。ちゃわといいます。現在ソフトウェアハウスに勤めていて、
普段はごく当たり前の業務ソフトを開発しています。
コンパイラに関しては昔から関心があり、本などで勉強しています。

もう随分前の話しですが、専門学校にいた頃、4〜5人のグループで自由研究
というのがあり、簡単なBASICインタプリタをFORTRANで作った
ことがあります。BASICインタプリタを提案したのはもちろん(?)私です。

会社の同僚W氏がコンパイラに関心があると知り、たまにその話題で
盛り上がったりしています。一般の業務ソフトではなく、基本ソフトの開発を
仕事でやれたらいいのにと話しています。(現実には無理ですけど。)

個人的にはコンパイラだけでなくコンパイラ・コンパイラにも関心があり、
UNIXのyaccコマンドに代わるものを作りたいなどと考えています。
また、現在のコンパイラはLALR(1)又はSLRを基本にしてるものが
ほとんどですが、何か他の手法はないだろうかなどと、暇なときにいろいろ
考えたりもしています。

これからもたまに来ようと思ってますので、よろしくお願いします。

ちゃわさん、ようこそ 投稿者:徳丸(オケゲム)  投稿日:10月21日(木)18時29分04秒

ちゃわさん、自作コンパイラの部屋へようこそ。
この掲示板を開設して思いましたが、コンパイラ開発に興味のある人って結構
いるんですね。

〉普段はごく当たり前の業務ソフトを開発しています。
〉コンパイラに関しては昔から関心があり、本などで勉強しています。

 僕と同じですね。

〉また、現在のコンパイラはLALR(1)又はSLRを基本にしてるものが
〉ほとんどですが、何か他の手法はないだろうかなどと、暇なときにいろいろ
〉考えたりもしています。

 すごいですね。
 私個人的に思うには、yaccのような構文解析ジェネレータだけでなくて、意
味解析とかコード生成の領域までサポートできたらなぁと思うのですが。まぁ、
あんまりなんでもやってくれたら、コンパイラを作る楽しみがなくなってしま
うかな?

〉これからもたまに来ようと思ってますので、よろしくお願いします。

 こちらこそ!10,000番アクセスも狙ってくださいね(^_-)

参考書みたいな 投稿者:チロ  投稿日:10月22日(金)13時12分34秒

はじめまして。 
   ”低次元の質問で恐縮なのですが”

自作のコンパイラを作るにあたってまず本格的に開発していく事よりも、
プログラム中の関数や変数を取り出したり、offsetでその相対的位置を
カウントしたりする事の出来るようなプログラムからとりかかったほうがよいのでしょうか?

興味があるので是非、自作コンパイラに挑戦してみたいと思っています。
Cで何か参考となる本があればおしえてください。   よろしくおねがいします。

チロさんへの回答 投稿者:徳丸(オケゲム)  投稿日:10月22日(金)14時45分15秒

 チロさん、はじめまして。ウェブマスターの徳丸(オケゲム)です。
 「低次元の質問」なんてとんでもない。このような質問こそ、当ホームページ
の読者が知りたいことではないでしょうか?

〉自作のコンパイラを作るにあたってまず本格的に開発していく事よりも、
〉プログラム中の関数や変数を取り出したり、offsetでその相対的位置を
〉カウントしたりする事の出来るようなプログラムからとりかかったほうが
〉よいのでしょうか?

 いきなりフルセットのコンパイラを作るのが賢明でない、という点ではそうで
すね。
 一般的にも言われているようですが、まずは「小さな・おもちゃのような」コ
ンパイラから始めるのが良いと思います。
 まずは、電卓のようなものから始めて、PL/0のようなおもちゃコンパイラ/イ
ンタプリタに進み、その後は自分の興味のある分野ごとに独自の文法や機能の実
装を実験していくのがよいと思います。

〉興味があるので是非、自作コンパイラに挑戦してみたいと思っています。

 小さなものでも独自のものが出来たら、是非公開して欲しいですね。当ホーム
ページもそのようなお役に立ちたいと思いますので、よかったら連絡ください。

〉Cで何か参考となる本があればおしえてください。

 えっと、これは「C言語によるコンパイラ開発」の参考書という意味ですよね。
 ソフトバンクから出ていた「yaccによるCコンパイラプログラミング」(近藤
著)が良いと思うのですが、残念ながら絶版になっているそうです。結婚した時
にコンパイラの教科書の多くを処分してしまったので、また本屋ででも探してみ
ます。

 この掲示板を読んでいる人も、良い本があれば紹介してください。

いつもお世話になっております 投稿者:ルパン  投稿日:11月05日(金)09時30分14秒

いつもお世話になっております、ルパンと申します。

パスカルP4コンパイラを頂きました。LL(1)文法で解析できる言語とOS(MINIX)とダイビングに
興味があります。Pascal系コンパイラとしてはCマガジンの付録になっていたTAMAGO(?)、
CabezonとMINIX付属のPascalコンパイラを持っています。MINIXの改造が一段落したら、JIS-
Pascal水準1のサブセットをLL(1)解析表を用いた方法で実現したいと思っています。

時々、来ますのでよろしくお願い致します。
http//home4.highway.ne.jp/bigbang/

10000人目! 投稿者:カバオ  投稿日:11月06日(土)21時32分50秒

サーチエンジンでJavaScript関係のページを探していたら流れ着きました。
10000人目を踏みましたのでご報告します。10000人おめでとうございます。

みなさんコンパイラを作ってるんですか…すごいですね。
おもしろそうですが…僕には手が届かなそうです(^_^;)

ルパンさん、ようこそ 投稿者:徳丸(オケゲム)  投稿日:11月07日(日)17時30分17秒

 ルパンさん、こんにちは。自作コンパイラの部屋にようこそ。
 Pascal好きの人って結構いるんですね。そうですか、LL(1)で解析できる言語が
好きという人に出会ったのは初めてです。
 だけど、Pascalは厳密に言うとLL(1)ではないですよね。識別子で始まるステー
トメントは、代入文と手続き呼び出しの両方がありますから。確か、PL/0は手続
き呼び出しをcallで始めているのは、これを避けるためではないかな?
 だからPascalは厳密に言うとLL(2)じゃないかしら。手書きパーサの場合はどう
にでもなりますが、「LL(1)解析表を用いた方法」だとどうなんでしょうか?
 ひょっとしたら、とっくに考慮済みかもしれませんが、教えていただけません
か?

 また遊びに来てくださいね。

カバオさん、ようこそ。10000人目おめでとう 投稿者:徳丸(オケゲム)  投稿日:11月07日(日)17時31分29秒

 カバオさん、こんにちは。自作コンパイラの部屋にようこそ。10000人目、おめ
でとうございます。
 それにしても、当ホームページを見にくる人は、マナーがいいですね。私が11/
06の朝見たときは、9992でした。何回もリロードして、強制的に10000人目を取る
人はいなかったようですね。

 このホームページは元々コンパイラ作成を趣味にしている人と知り合いになり
たいと思って作ったことは確かですが、JavaScriptの研究もも主要テーマでして
(文章の量はこっちの方が多い(^^;)、遠慮なさらずに遊びに来てくださいね。

Pascalは厳密に言うとLL(2) 投稿者:ルパン  投稿日:11月08日(月)15時46分04秒

 徳丸(オケゲム)さん有難う。
 代入文と手続き呼び出しの分別はまだ考えてません。識別子表を内側のブロックから調べてい
けば出来るかも…。LL(1)文法だけでは無理で、LL(1)+属性文法で出来ないかな。
 LL(1)が好きなのはコンパイルスピードが早い、解析表がコンパクト、というぐらいの事で
す。Delphiが早いのはそのせいでは…。などと思っています。
 昔、Tourbo Pascalで任意長のビット数を持つ整数型のエミュレータ−を集合型で作った事が
あります。シフト演算子が集合型に無いので大変困りました。多倍長計算の実現は普通、整数型
の配列を使うのでしょうけど、処理系依存になるのが嫌で集合型でやってみたのですが、とにか
く遅かった。それでも、255ビットの固定小数点とみなして、相加・相乗平均によるπの計算に成
功しました。今度、処理系を作るときもこの方法でと考えています。

 では、またお邪魔します。

属性まで含めればいけそうですね 投稿者:徳丸(オケゲム)  投稿日:11月10日(水)10時15分16秒

〉LL(1)文法だけでは無理で、LL(1)+属性文法で出来ないかな。

 属性まで含めたらいけますね。yacc/bisonを使う場合でも、typedefされた識別
子を処理するのはこの方法だと思います。私は好かんのですが・・・
 具体的には、字句解析で識別子を返す際に、「手続き識別子」と「その他の識
別子」に分けるなどの方法が考えられますが、ややこしそうです。私はややこし
いのは個人的に好かんのです。

 考えてみると、goto文のラベルが数字なのは、LL(1)で構文解析ができるように
する工夫なのですね。goto文を使いにくくして、goto文をできるだけ使わせない
ようにするためだ、という理由も聞いたことがありますが、それは建前のことで、
本当の理由は構文解析の都合のような気がします。

〉では、またお邪魔します。

いつでもいらしてくださいね。

字句解析で識別子を返す際 投稿者:ルパン  投稿日:11月10日(水)10時55分41秒

また来ました。

 字句解析と構文解析(と意味解析?)を混ぜ込むのは好ましくない。やはり、字句解析では「識
別子」だけを返して、構文解析ではブロック毎の識別子表に入れるときに識別子の種類を付加し
てあげれば、識別子表を検索すると「手続き識別子」と「その他の識別子」の判定が出来るの
では?もっとも、手続き呼び出しで「call」を受け入れたら済む話ですけど…。

 構文解析の都合といえば、Pascalの前身、Algol-??でもっとややこしいのがあって、それら
を削って、Pascalを設計したとかいう話を読んだことがあります。goto文のラベルもその延長
線上の話かもしれませんね。

再びLL(1) 投稿者:徳丸(オケゲム)  投稿日:11月15日(月)12時28分37秒

ちょっと間が開いてしまいました(_ _)

〉字句解析と構文解析(と意味解析?)を混ぜ込むのは好ましくない。
〉やはり、字句解析では「識別子」だけを返して、

私もそう思います。

〉構文解析ではブロック毎の識別子表に入れるときに識別子の種類を付加し
〉てあげれば、識別子表を検索すると「手続き識別子」と「その他の識別子」
〉の判定が出来るのでは?

 できると思いますが、構文解析エンジン次第という気もします。ルパンさんは、
LL(1)の構文解析エンジンまで自作されるのでしょうか?あるいは、既存のもの
ですか?

〉もっとも、手続き呼び出しで「call」を受け入れたら済む話ですけど…。

そうですね。でも、Wirthは、callは嫌だったんでしょうね:-)

LL(1)の構文解析エンジン 投稿者:ルパン  投稿日:11月15日(月)23時07分49秒

> LL(1)の構文解析エンジンまで自作されるのでしょうか?あるいは、既存のもの

自作するつもりでいます。その前に超マイナーなOS、MINIX 1.6.25の32bit化をしなければ…。

はじめまして 投稿者:つよし  投稿日:11月18日(木)03時21分23秒

どうも、はじめまして。
自己紹介は長いので、省略すると28才にして大学4年生です。
たまたま、ICQで話してた友達(大学とは関係なし)が見ていたページを教えられて
よんでみると内容がなかなかタイムリーなので驚きました。
何故かというと、実習でJAVAで実装してあるPL/0コンパイラ拡張するというのがあって
明日提出日で困ってたからです。今から仕方なくやるのですが、、、
何が困るって、パスカルのやつをそのままJavaに置き換えただけではというような、
コードを見せ付けられて拡張しろもないもんだと、、、、思いません?
まぁ、パスカル風にいじればいいのかもしれませんが、それでは納得できませんよねぇ。
やっぱりオブジェクト指向風に作りたいものです。
じゃぁ、やるかとソースコード全部書き換えはじめてしまいました。
そんなこと考えてるうちに期限に間に合わなくなってあせっているという次第です。
まぁ、愚痴はさておき、楽しそうなページなのでまた寄らせていただきます。
すいませんでした、つまらない書き込みで、、、若気の至りということで許してください。

教えて下さい 投稿者:Uz  投稿日:11月18日(木)19時28分49秒

はじめまして。
私は金沢在住の3流大学生で,今、卒業研究としてJava Scriptを使ったHPを作成しています。
しかし,周りに教えてくれる人はいないし,本を見てもいまいちわかりません。
どなたかわかる人がいたら教えてくれませんか?
HPの内容は,バリアフリー改築について何ですが,
高齢者の心身機能レベルをチェックリストではかり,
その内容によって,改築方法や予算などを答えるものです。
意味わかりますか?
何かこのことを表す用語があるとは思うのですが,
初心者なのであまりわかりません。
卒業がせまり焦っています。
誰か,私を助けて下さい!
お願いします。

つよしさん、ようこそ 投稿者:徳丸 浩  投稿日:11月19日(金)18時05分22秒

つよしさん、はじめまして。当ホームページにようこそ。
そうですか。JavaでPL/0の演習ですか。いかにもありそうですね。
ふむふむ、「PascalからそのままJavaに置き換えたようなやつ」ですか。それっ
て、ひょっとすると、classが一つだけあって、その中で各メソッドがサブルーチ
ンのように呼び出されているのでしょうか?そこまではひどくないか・・・

 オブジェクト指向も大事ですが、卒業することも大切かと思いますので、くれ
ぐれもハマリ過ぎないように・・・と言ってももう遅いか。

気が向いたら、またいらして下さいね。

Uzさん、ようこそ 投稿者:徳丸 浩  投稿日:11月19日(金)18時06分00秒

 Uzさん、はじめまして。当ホームページにようこそ。
 JavaScriptを使ったホームページが卒業研究のテーマですか。

〉高齢者の心身機能レベルをチェックリストではかり,
〉その内容によって,改築方法や予算などを答えるものです。
〉意味わかりますか?

 おおよそは分かりますが、心身機能レベルのチェックリストって、具体的にど
んなものがあるのか、素人には見当もつきませんねぇ。これって、JavaScriptの
問題ではないですよね。もう少し具体的に、JavaScriptの問題に直してくれたら、
私か他の親切な方が答えてくれるかもしれません。

 では、卒論頑張ってください。また遊びに来てくださいね。

はじめまして 投稿者:J.Naka  投稿日:11月27日(土)16時33分53秒

 こんにちは、初めまして。

 わたくしは、超ドンクサイなアマチュアプログラマ
のつもりの人でし(^^;
 パソコン歴はPC9801 N88BASIC(インタプリタ)を
128Kb プロッピーで弄り回した経験がありますぅ(大笑)
下手の横好きで前進ゼロ!(笑)

 と言う事で、少しお願いがあります。
 この掲示板に書かれていることは、非常に興味津々です。
出来ましたら、日付ソートした連続ログを読んでみたいと
いう願いがあります。

#参加者のレベルに動ぜず書き込みしました。下手の横好きだから(笑)
#ちにみに、文中の"(笑)"は、"(悲)"が本意です(笑)(^^;;

校正 投稿者:J.Naka  投稿日:11月27日(土)16時41分30秒

>日付ソートした連続ログを読んでみたいと
~~~~~~~~~~~~~
古い物順(正順)ソートって事です。

J.Nakaさん、ようこそ 投稿者:徳丸(オケゲム)  投稿日:11月28日(日)15時20分58秒

J.Nakaさん、はじめまして。当ホームページにようこそ。
うーん、無印PC-9801ですか。128KBのフロッピーというのは、8インチのいわゆ
る片面単密というやつですかね。いまどき、8インチFDはおろか、5インチだって
見たことない人が多いと思いますがね。なんでフロッピー(ペラペラした)と言
うのか、分からないってことにもなりませんかね。
私が初めて買ったパソコンは、NECのPC-8801mkIIというやつで、5インチFDが一
機だけついていました。これでN88BASICで遊びましたねぇ。PC-9801はもう出て
いたような気がしますが、高くて買えませんでした。
下手の横好きというのは、ご謙遜なのかもしれませんが、私は「上手の縦嫌い」
よりいいと思いますがねぇ。またちょくちょくいらしてくださいね。あんまり書
き込みが少ないと、無料掲示板は閉鎖に追い込まれますんで(^^;

日付別あるいはスレッド別にまとめる作業はやろうと思っていますが、どんな形
式がよいでしょうか?目次→本文の形式か、はたまた日付順に本文が並んでいる
だけか、その混合とか。

初めまして(詳細)(^^; 投稿者:J.Naka  投稿日:11月28日(日)23時02分23秒

御返事、どもです!
 PC9801は、U2というやつです、3.5FDです。128Kbとはメモリのことす。
 PC-8801も関心ありましたが、CPUが8ビットつまり256までしか直接扱えないと
いうことが見送りになった、そしてU2には当時先進的なV30が搭載されていた。
だったと思う。
 まっこれの話しは本題ではないので、これぐらいにしてと(^^;

 さて、掲示板についてですが、挨拶用掲示板なら、今のレンタルが妥当ですが、
技術的質疑が入ってくると、やはりスレッド別が欲しくなりますね。スレッド形
式は色々ありますが、参考としてと「ほほWWW」の「ラウンジ掲示板」が自分
は気に入ってます。あっそそ、ここの紹介もとほほラウンジで教えてもらいまし
た。

 JavaScriptの話しですが、継承とか本来のオブジェクト指向というか既存言語
(C++とか)に実装されている機能を表現(代用?)するには、ソース表記上のテ
クニック(変数名に前置子とか)でなく、オブジェクト指向的文法のソース(仮
想言語?)をJavaScriptのネイティブコードに落とすプリプロセッサツールがあ
れば、より柔軟にオブジェクト指向表現可能ですね。って、それを作るのが大変
なのですが。。。(^^;
 Web上の標準言語の感あるJavaScriptには、昔のBASCIに相当する、インタプリ
タで簡単操作なオブジェクト指向ってのを、具現化してほしいですね!。高い敷
居には昇れないアマチュアプログラマには(^^;
#ちなみに、使用経験のある言語は、N88BasicとMASMなどのDOS上のアセンブラ
#です。C/C++は未だに取得中です(笑)。
#ちなみ、オブジェクト指向への傾斜トリガーは、かの有名な「憂プラ」です。