作者: Bruce.
日時: 2006/9/26(23:36)
Bruce.です。

新たな地雷踏みました? わし。

機械伯爵 さんは書きました (2006/09/26 20:54):
>>>> ・すべては論理のままに
>>>>   Prolog
>>>  BNFはここかな?
>> BNFって Backus Nour (Normal) Form (う、綴り自身ねえ)ですか?
>> これはプログラミング言語とは違うような。
>> 確かにプログラミング言語とは縁が深いですが。
> 
>  BNF=Backus Naur Form(バッカス=ナウア記法)ですね。
>  ALGOL60を定義した「プログラミング言語定義言語」として有名
> ですが、PostScriptをプログラミング言語とするなら、BNFもあり
> かな、と。

どもです。ぐぐればよかった。
きっと「もしかして」で指摘してくれたに違いない(^^;

それはそれとして、BNFをプログラミング言語扱いするのは
初めて聞きました。PostScriptは通常のプログラミング言語とは
毛色が違いますが、制御構造は持ってるし、再帰だってできる。
実行結果は描画の結果として得ることができますよね。

でもBNFはどうでしょう? BNF食わせてなにか結果を得ることが
できる処理系って存在しますか? yaccはちと違うと思います。

歴史上仕様だけが存在して実際の処理系がない「プログラミング
言語」はありますが、BNFを「プログラミング言語」とは呼べない
と思います。

数が正義とはあまり言いたくはないのですが、プログラミング
言語をリストアップしたサイトがいくつもありますが、BNFを
プログラミング言語として分類しているところがあったら教えて
くださいませんか。

あと、WikipediaでBackus Naur Formの項を見ると

The Backus?Naur form (also known as BNF, the Backus?Naur formalism,
Backus normal form, or Panini?Backus Form) is a metasyntax used to
express context-free grammars: that is, a formal way to describe formal
languages.

BNF is widely used as a notation for the grammars of computer
programming languages, command sets and communication protocols, as well
as a notation for representing parts of natural language grammars (for
example, meter in Venpa poetry.) Most textbooks for programming language
theory and/or semantics document the programming language in BNF. Some
variants, such as augmented Backus-Naur form (ABNF), have their own
documentation.

とあります。

notationとして用いられるとはありますが、それはいわゆるプログラ
ミングとは違うのではありませんか?


>  それはそれとして、Prologと同じ、定義型言語でくくるのは
> 間違ってないですよね?

Prologのキモはユニフィケーションとそれに付随するバックトラック
にあると思っているので「定義型」言語というのはどうかと思います。
それにProlog が相手にしているのは Logic Programming(論理型プロ
グラミング)ではないでしょうか?

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk@...
	web  www.kt.rim.or.jp/~kbk/index.html#zakkicho
	     homepage3.nifty.com/farstar/