フォース:奇妙なプログラミング言語。とにかくあなたがそれを気に入るかもしれない理由はここにあります。

開示: あなたのサポートはサイトの運営を維持するのに役立ちます!このページで推奨する一部のサービスについては、紹介料を稼ぎます.


フォースは珍しい言語です。これは主にインタプリタであり、リアルタイムで使用できるようにコマンドラインインターフェイスを備えています。ただし、コードのセットを取得してコンパイルすることもできます。だからそれはハイブリッドのようなものです.

このため、Forthは通常、従来のオペレーティングシステムを備えていないハードウェアで使用されます。また、機械の制御にも広く使用されており、宇宙探査にも使用されています。彗星67P / Churyumov–Gerasimenkoに着陸したプローブであるフィラエさえも.

歴史

フォースは1968年にモハスコインダストリーズでグラフィックスプログラミングをしながらチャールズムーアによって開発されました。しかし、最初の完全なフォースの実装は1971年まで実現しませんでした。ムーアが米国国立電波天文台(NRAO)で11メートルの望遠鏡を制御するスタンドアロンシステムを作成したときです。.

Forthの以前のバージョンは、プログラミングコミュニティの注目を集めていました。しかし、この時点で、それは天文学コミュニティで非常に人気になりました。ムーアは1973年にNRAOの同僚であるエリザベスラザーとエドワードコンクリンとともにFORTH、Incを設立しました。.

同社はプログラムを多くの異なるシステムに移植した。また、FORTH、Incは引き続き重要な企業であり、ビジネス、学界、政府の人々にForth関連製品を提供しています.

Forthの概要

Forthプログラミング言語には、いくつかのユニークな側面があります。ここで最も重要なものについて説明します.

フォースの特徴

Forthは多くのユニークな機能を提供します:

  • 対話型プログラミング

  • 「単語」と呼ばれる言語のコンパイルされた拡張機能の作成

  • スタックと逆ポーランド記法

  • ユーザーとハードウェア間の直接接続.

逆ポーランド記法

Forthは、逆ポーランド記法を使用して数学的計算を行います。これは、スタックに数値を格納することに依存します.

2 + 3の計算を考えてみましょう。Forthでは、2をスタックに配置し、次に3をスタックに配置してから追加します。これは次のようになります。2 3 +.

少し奇妙に思えますが、これはコンピュータが実際に計算を行う方法であるため、コンピュータが解析する方が簡単です。そして、あなたがコーダーとしてそれに慣れると、それはかなり自然になります.

また、括弧は必要ありません。次の2つの例を検討してください。 (注:バックスラッシュ文字はコメントを開始します。)

2 3 + 5 *(2 + 3)* 5と同じ
2 3 5 * +これは2 + 3 * 5と同じです

最初の例では、2がスタックにプッシュされ、その後に3がプッシュされます。したがって、スタックでは2が2番目で、3が最初です。 「+」演算子は、スタックの最初の2つの要素に適用されます。これにより、これらの2つのアイテムがスタックから削除され、スタックの上に5(2 + 3)が残ります。.

次に5をスタックにプッシュします。これにより、スタックの最初と2番目の位置に5が配置されます。最後に、「*」演算子を適用すると、25(5 * 5)がスタックの一番上に配置されます。.

2番目の例では、2、3、および5をスタックに配置し、5が最初の位置に、3が2番目の位置に、2が3番目の位置に配置されます。次に、スタックの一番上の2つの要素(5 * 3)に「*」演算子を適用すると、15がスタックの一番上に配置されます。.

この時点で、15は最初の位置にあり、2は2番目の位置にあります。 +演算子を適用すると、スタックの一番上に17(15 + 2)が残ります.

プログラム例

次のプログラムは非常に単純ですが、言語で行われていることの多くを示しています.

:OUTMATH数学計算を出力します
." 次に計算します:(2 + 3)* 5" CR
2 3 + 5 *
." これは次と等しい: " . CR;

OUTMATH

このプログラムが最初に行うことは、OUTMATHという名前の関数を定義することです。それに続く行は、セミコロンで終わる行までの関数の一部です。 1行目は、「今から計算する:(2 + 3)* 5」というテキストを出力し、その後に改行を入れます.

次の行は、前述の計算を実行し、25がスタックの一番上に配置されます。関数の最後の行は、「This equals:」の後にスタックの最上部の値(「。」で表される)とキャリッジリターンを出力します。.

次に、関数を実行します。したがって、プログラムが実行されると、次のように出力されます。

次に計算します:(2 + 3)* 5
これは次と等しい:25

フォースを学ぶ

ほとんどのプログラマにとって、これは新しい考え方です。しかし、それを使い始めると、それが自然に見えるのは驚くべきことです。ここでは、言語を操作するためのいくつかのチュートリアルと本があります。.

Forthチュートリアル

オンラインチュートリアルはたくさんあります。 Forthは、Forth以外のプログラマにとって奇妙であると同時に、現在のユーザーにとって自明であるので、チュートリアルの多くは、初心者を混乱させる可能性のあるものにつやがあります。これらのチュートリアルにはこの問題はありません.

  • Easy Forth:この短い電子ブックは優れた入門書です。唯一の欠点は、例では大きくないことです。以下の例をいくつか確認してください.

  • Forthの初心者向けガイド:これも良い入門書です。少し技術的ですが、より多くの例があります.

  • And Forth…:これはForthの非常に完全な紹介です—本と同じくらい良いです.

フォースブックス

プロセスを段階的に説明できる本を入手することで、新しい言語を習得する方が簡単なことがよくあります。 Forthについての優れた本はたくさんあります。特に、Forthが本当に普及した1980年代にさかのぼります。ここに最高で最も重要なもののコレクションがあります.

  • ディスカバーフォース:トムホーガンによるフォース言語の学習とプログラミング(1982):これは、フォース言語の簡潔な入門書です.

  • フォースの開始:レオブロディー著「初心者および専門家向けのフォース言語およびオペレーティングシステム入門(1982年)」:これは、フォースを学ぶための古典的で優れた方法です。それは絶版ですが、少しのお金のために中古のコピーを見つけるのは難しくありません。また、無料でオンラインになっています。上級のForthプログラマーは、Brodieのより最近のThinking Forthをチェックしたいと思うかもしれません。.

  • Juergen PintaskeによるForth Liteチュートリアル(2014):これは、例に焦点を当てたKindleベースのチュートリアルです.

  • 問題指向言語のプログラミング:フォース—チャールズムーアによる内部構造のしくみ(2014):これはフォースの作成者がずっと前に書いた本のKindleバージョンです。それはまだ言語に対する鋭い洞察を提供しますが、最初から始めるには最良の選択ではありません.

  • Elizabeth RatherとEdward ConklinによるForth Programmer’s Handbook(2007):これは、他の2人のForthパイオニアによるForthに関するより高度な本です。 Ratherの本、Forth Application Techniques(2006)も参照してください。.

その他のリソース

  • Forth Interest Group:このサイトには、古い歴史的文書を含むあらゆる種類の興味深い情報があります。残念ながら、リンク切れもたくさんあります。しかし、それはまだチェックアウトする価値があります.

  • Forthプログラムへのリンク:これは、スプレッドシートや数独パズルソルバーなどの実際のサンプルプログラムのすばらしいコレクションです。.

  • Forth Googleグループ:これは、質問をしたり答えたりするForthユーザーの非常に活発なグループです.

  • Forth Subreddit:これはひどく活発なフォーラムではありませんが、知識のある人がまだいます.

4番目の実装

長年にわたって多くのForthの実装がありました。 Forth Interest Groupには、長いForth Compilers Pageがあります。したがって、ガレージでPDP-11設定を使用している場合は、Forthコンパイラを入手できます。しかし、より近代的なシステムの場合、ここに、より一般的なオプションがあります.

bigFORTH

1980年代半ば、ディートリッヒウェイネック、ゲオルクレーフェルト、クラウスシュライジークは、8086 IBM PCや6502 Apple、Commodore、Atariマシンなどの16ビットマシン用にvolksFORTHを開発しました。.

最終的に、彼らは(16ビットバス)68000ベースのAtari STの32ビットバージョンを作成しました。 volksFORTHが進歩しているにもかかわらず、プロジェクトはかなり停止しました(後で再開されましたが)。.

Bernd Paysanは、このバージョンのvolksFORTH(当時はturboFORTHと呼ばれていました)に十分に興味を持っていましたが、bigFORTHの基礎になりました。.

その最初のバージョンは1990年にAtari ST用にリリースされました。1995年までに、bigFORTHは386に移植され、翌年にはWindows NT、OS / 2、およびLinuxで利用可能になりました.

グラフィカルインターフェース

その時点で、PaysanはMINOSの作業を開始しました。 (技術的には「MINOS」ですが、通常「MINOS」と呼ばれます。)

bigFORTHのグラフィカルインターフェイスです。 Visual Basicのような「Visual bigFORTH」と考えるのが最も簡単な場合があります。 X-Windowsシステム用に最初に作成されました。しかし、すぐにWindowsでも利用できるようになりました.

bigFORTHとMINOSの両方の開発は2010年頃に停止したようです。しかし、どちらも簡単に利用でき、非常に便利です(bigFORTHはANSI準拠です)。実際、MINOSはとても楽しく遊べます.

bigFORTHリソース

bigFORTHを使用したい場合、またはそのために開発したい場合は、必要なツールがすべて揃っています。

  • ソースコード:これは、2010年3月22日、バージョン2.4の最後の公式リリースからのコードです.

  • Debianパッケージ:DebianベースのLinuxディストリビューション(Ubuntu、Mintなど)用に簡単にインストールできるパッケージ。それは/ usr / local / binにインストールされ、MINOSを含みますが、xbigforthと呼ばれています.

  • Windows自己インストール実行可能ファイル:Debianパッケージと同じですが、Windows用です。 MINOSはxbigforth.exeという名前です.

  • ドキュメント(PDF):この約300ページの本は、JL Bezemerによって書かれたチュートリアルとリファレンスとして機能します。その多くは汎用のForthに関するものであり、「And So Forth …」は.

  • Bernd Paysanのホームページ:このページには、Forth関連の興味深い情報と例がたくさんあります。特に注目すべきは、PaysanのForthベースのマークアップ言語です。.

  • bigFORTHリポジトリ:すべてのbigFORTHニーズに対応する究極の宛先.

グフォース

Gforthは、ForthのGNU実装です。それは顕著な血統を持っています.

Gforthプロジェクトは、1992年にbigFORTHの作成者であるBernd PaysanとAnton Ertlによって開始され、Jens Wilkeによる多大な貢献がありました。.

これは、bigFORTHとはるかに古いfig-FORTHの組み合わせでした(以下を参照)。しかし、bigFORTHは、fig-FORTHに基づいたvolksFORTHから来たので、その歴史は歪んでいます。.

GNUプロジェクトであるため、プロジェクトの開始以来、多くの作業が行われています。現在は完全にANSIに準拠しており、当初の目標をすべて達成しています。最新バージョンは0.7.3で、最後のエントリ(Paysanによる)は2013年2月25日です。.

無料のForth実装に関しては、Gforthが最も一般的に使用されています。それの一部は、それがGNUプロジェクトとその可用性の一部であるというだけの理由です。しかし、それは強力で高速だからでもあります.

Gforthリソース

Gforthには、必要な用途に使用するために必要なすべてのリソースがあります。

  • ソースコード:このページは、バージョン0.2.1から現在の0.7.3までのGforthソースコードを提供します。.

  • Debianパッケージ:Debian Linuxディストリビューションで利用できるさまざまなパッケージがあります。選択するパッケージによっては、最初に1つ以上の他のパッケージをインストールする必要がある場合があります。.

  • Windows Self-Installing Executable:これはGforthの以前の(0.7.0)バージョンですが、すぐに始めることができます.

  • ドキュメント(PDF):この250ページの本は、Gforthのバージョン0.7.0に適用されます。 HTML形式でも入手可能.

  • Gforthリポジトリ:Gforthに関連するほとんどすべてのものがここにあります.

pbForth

pbForthはもうサポートされていないようですが、Forthの非常に興味深い実装なので、チェックする価値があります。.

すでに説明したように、Forthは常にハードウェア制御に関連しています。そのため、レゴマインドストームロボット工学キット、具体的には1998年に登場した16ビットRCXのForth実装が作成されたことは、まったく驚くことではありませんでした。.

2006年に発売された第2世代NXTシリーズや、2013年に発売された現在のMV3で動作するように更新されたことはないようです。.

pbForthの公式サイトはありませんが、それについて学び、使用することは可能です。ただし、それほど多くの情報がないため、学習曲線が急になる可能性があります。そして明らかに、あなたはレゴマインドストームRCXが必要になるでしょう(彼らは使用されることを見つけるのはそれほど難しくありません).

NXTは完全に異なる(そして32ビットの)プロセッサを使用しているため、pbForthは確実に動作しません。それでも、それは楽しいかもしれません。そして、それが可能であれば、第2世代と第3世代のキットに移植することができます。.

pbForthリソース

通常のインターネットで利用できる情報は簡潔で、常に2010年以降運用されていないpbForthホームページに常にリンクしています。これの多くが利用できるのは、インターネットアーカイブのおかげです。.

  • レゴロボティクスの歴史:pbForthについてではありませんが、レゴマインドストーム製品の簡単な概要を提供します.

  • pbForthの概要
    (PDF):この30ページのチュートリアルでは、言語を使い始めます。.

  • phForthソースコード
    :pbForthはアセンブリ言語とTclで記述されているため、これらのツールを使用できるようにする必要があります。.

  • Windows GUI
    :このファイルは実行されますが、何かを実行させるのはより複雑になる可能性があります。 LinuxまたはMac用のpbForthが必要な場合は、ソースコードを使用する必要があります.

  • phForthホームページ2009年頃
    :このページには、pbForthに関する興味深い情報へのリンク、特に6ダースのサンプルスクリプトへのリンクがあります。.

その他の実装

  • fig-FORTH:これは、Forth Interest Groupによって作成された、最も初期のForth実装の1つでした。これは16ビットの実装です。これは、Data General EclipseやAlpha Microなどのすばらしい古いコンピューターだけでなく、8086および6502ベースのコンピューターでも使用できます。問題は、実行可能ファイルがないことです。アセンブリ言語コードだけです。ほとんどの場合、コードのビットマップPDFファイルのみです。実際のコードは8088/8086、PDP-11、および6800でのみ利用できるようです。(6800は8ビットプロセッサであるため、8ビットバージョンのfig-FORTHがあったようです。)

  • SP-Forth:これはWindowsおよびLinux向けの無料のForth実装です.

  • 4tH:これは、広範囲のハードウェア(Raspberry Piを含む)で利用可能な、使いやすいForth実装であり、優れたドキュメントが含まれています.

  • SwiftForth™:これは、Forthを世界にもたらした元の会社のForthコンパイラーです。市販品ですがリーズナブルな価格です.

概要

Forthは、魅力的で非常に便利なプログラミング言語です。ハードウェアを制御したい場合は特にそうです。ここのリソースを使用して、あなたはあなたの道にいるはずです.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map