試行錯誤でしたが、なんとか結果は出ました。WhitespaceはSchemeで開発されたプログラム言語ですか?fact.wsはそれを使ったアプリということなんですかね?どっちもチンプンカンプンですが。
最新の画像[もっと見る]
-
DaVinci Resolve 19でトランジションを適用する、覚書 18時間前
-
DaVinci Resolve 19でトランジションを適用する、覚書 18時間前
-
DaVinci Resolve 19かなり使えると思います!free版でも 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
Canon7DmarkⅡを使ってみてます! 4日前
-
「ノルディックウォーキング」名前だけ知ってました! 6日前
「Lisp」カテゴリの最新記事
Whitespace曲りなりに実行できました。
Whitespaceとは?ShemeによるPCシミュレータですか?
Schemeでリストなどの比較では。eq? equal?を使う
Scheme最初から躓いてます。list?、pair? 追記しました。
WindowsのEmacsでComon Lispを動かしたいのですが…、なんとか動いたようです!が、...
WindowsのEmacsでComon Lispを動かしたいのですが…、なんとか動いたようです!が、...
Lispと言っても、SchemeとClispでは結構違うです。
WindowsのEmacsでComon Lispを動かしたいのですが…、なんとか動いたようです!
WindowsのEmacsでComon Lispを動かしたいのですが…。
EmacsでLispを動かす、書き込みがあります。
> 昔で言う、コンパイラだっと思います。
ああ、Visual Basicの前身ですね。
そう言えばVBAなんかもコンパイラですね。
まぁ、それ以前の、70年代のミニコンで動いてたBASICなんかもコンパイラが主流じゃなかったかな?
あくまでPCのBASICがインタプリタが主流だっただけ、だと思います。
(まぁ、当時はOS代わりに使ってたりしてましたからね・・・・・・)
昔で言う、コンパイラだっと思います。
事実上そうですね。
プログラミング言語のインタプリタもCPUも「逐次実行」が基本です。
前者は入力を一行一行実行する。後者はバイト毎に実行する。
CPUも「ある纏めた命令を一気に」実行は出来ないのです。仕組みはソフトウェアのインタプリタに近い。
結局、「なんかのインタプリタが解釈可能な状態にファイルを変換すること」がコンパイラがやることなんです。
それで言うと、例えばC言語のファイルをPascalのソースコードに「一気に翻訳する」事もコンパイルです。
コンパイル = 翻訳、と捉えるのが事実に適合してますね。
> 昔はBASICはインタープリタでFortranなどはコンパイラと思ってました。
実際はそういう区分けは意味がない、ってのは何度か指摘してますね。
BASICは古い時代でもコンパイラがありました。
結局、PC環境ではあまりメジャーじゃなかった、ってだけです。
言語をインタプリタ型、コンパイラ型、って分けるのは無意味ですね。殆どの言語仕様には「インタプリタにしろ」とか「コンパイラにしろ」とは書いてません。
例外はANSI Common Lispくらいですかねぇ。Common Lispは言語仕様でコンパイラが規定されています。
> cametan_42さんは将棋も興味がありそうですので、質問してみました。
いや、僕も将棋は全く、ですねぇ。
でも統計を使ったAI、今で言うと機械学習ソフトの一種でしょうね。
昔はBASICはインタープリタでFortranなどはコンパイラと思ってました。
話は変わって、少し前ですがNHKBSで将棋のプロ棋士がボナンザとか言うコンピュータに負けたとかありました。最近の棋士はソフトを活用してるようです、藤井三冠ですか?も活用してるようですが、どんなソフトですかね。AIなんですか?天才が作ったものでしょうから、分かるはずはないのですが、自分には。
cametan_42さんは将棋も興味がありそうですので、質問してみました。
自分は将棋はもとより、勝負事は全く性に合いませんので、出来ません。
そうですね。仮想マシン上で動く言語、の方が、MSのC#を含み増えてきてるかな。
結局、
> 低次元の言語から高度な言語まで有る
ってのはある意味変わってきてて、「言語」じゃなくって「レイヤー」になってきてる、って事ですね。低レベルから低レイヤー、その上に順次またレイヤーが重なっていく、って方が事実に近くなってきてるかも。
> 但し、CとC++はexeファイルを作りますが、それでもインタープリタと言えますか?
逆です。コンパイラ、とはインタプリタ上で動くコードを吐き出す為のモノだ、って考えた方が事実に近い。
CPUは原理的にはハードウェア・インタプリタなんです。
そのハードウェア・インタプリタ上で動くコードに変換する事を事実上「コンパイル」と言う。
Java仮想マシン上で動くコードに変換するのを「コンパイル」と言う。
Python仮想マシン上で動くコードに変換するのを「コンパイル」と言う。
一方、そのターゲット上のマシン(仮想であれ何であれ)での実行自体は、動作的にはインタプリタである、って事です。
最近の言語はexeファイルを作らない、仮想言語みたいなんですかね。但し、CとC++はexeファイルを作りますが、それでもインタープリタと言えますか?
多分、作者もやってないんじゃないかなぁ(笑)。
恐らく逆アセンブラみたいなの作ってるんじゃないかしら。
それはWhitespaceのWebページにはおいてなかったですけどね。
> 昔はMASMとか見たことがありましたが、今も使ってるんでしょうか?
いまは使ってないんじゃないですか?DOS時代のモノですしね。
コンピュータそのものが、先達が作ったものは、ありがたく利用する文化なので、それに従ったほうが正解なんですかね。
昔はMASMとか見たことがありましたが、今も使ってるんでしょうか?
そう考えて良いです。
と言うか、僕のブログの方にも書きましたが、コンピュータの動作そのものが原理的にはインタプリタそのものです。
従って、仮想マシンもインタプリタです。
Javaなんかの仮想マシン(JVM)もインタプリタですね。
> 例えば素数のジェネレータみたいのは、作れるんですかね?
> 難解プログラミング言語なので、作れるんですが、面倒ということでしょうか。
作れるでしょうね。
ただ、isamさんが想像した通り、クソ面倒でしょう(笑)。
僕もやりたくないです(笑)。
事実上、殆ど機械語でコーディングするようなモノですから。
fact.wsがideone_s043hbを使って、サブルーチンみたいな、実行する。に近いんですかね。例えば素数のジェネレータみたいのは、作れるんですかね?
難解プログラミング言語なので、作れるんですが、面倒ということでしょうか。
原作はHaskellで書かれたプログラミング言語です。
Whitespace:
https://web.archive.org/web/20150618184706/http://compsoc.dur.ac.uk/whitespace/tutorial.php
それをRacketに移植しただけ、ですね。
> fact.wsはそれを使ったアプリということなんですかね?
アプリと言うより、fact.wsはWhitespace言語で書かれたプログラムです。
スペース、タブ、改行文字だけで書かれたプログラムです(だから「空白」を意味するWhitespaceと言う名前がついている)。
> どっちもチンプンカンプンですが。
当然ですね。
一種の冗談プログラミング言語で、このテのブツは「難解プログラミング言語」と呼ばれています。
難解プログラミング言語:
https://ja.wikipedia.org/wiki/%E9%9B%A3%E8%A7%A3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
実用性は全くありません(笑)。
ただ、ハッカー連中の腕試しとしての「おもちゃ」としての性質が強い。
フツーのプログラミング言語を作るのは厄介ですが、この手のプログラミング言語は「プログラミング言語の作り方」の初歩的な知識のみで制作出来る事もあって、たくさん作られてるんですよ。
一般に、「マトモなプログラミング言語」を作ろうとすれば、これは手間なんですが、逆に「難解プログラミング言語」を作ろうとするのは前者に比べると比較的ラクなんです(プログラムを作る側がラクだと作品が難解になる、と言う反比例の関係が見られる・笑)。
トーカナイザ(字句解析器)、パーザ(構文解析器)、そしてコンピュータの仕組みを知るために自作してみるのは、結構良い経験にはなりますよ。