12

ALGOL言語は理論言語として非常に重要であり、ウィキペディアにあるようにさまざまな実装があることも知っています。

しかし、はっきりしていないのは、ALGOL (純粋な ALGOL であり、Simula のような派生物ではない) が実際に何らかの形で「実際の」プログラミングに使用されたことがあるということです。

「本物」とは、プログラミング言語/CS 研究以外のいくつかのかなりの規模のプロジェクト、またはかなりの数の開発者 (たとえば、1000 人以上) によって使用されることを意味します。

個人的には、私がこれまでに行った唯一の ALGOL プログラミングは紙の上だったので、好奇心です。

4

12 に答える 12

10

重要なアプリケーションに関しては、Algol58 が最も成功しているようです。

ウィキペディアから:

JOVIALは、「Jules Own Version of the International Algorithmic Language」の頭字語です。「国際アルゴリズム言語」は、もともと ALGOL 58 のために提案された名前でした。1959 年にジュール シュワルツによって、軍用機の電子機器用のソフトウェアを作成するために開発されました。

それで:

JOVIAL を使用した注目すべきシステムには、ミルスター通信衛星先進巡航ミサイルB-52B-1BB-2爆撃機、C-130C-141C-17 輸送機F-111F-15F-16 (ブロック 50 より前)、およびF-117戦闘機、 LANTIRNU-2航空機、 E-3 セントリー AWACS航空機、海軍イージス巡洋艦、陸軍複数発射ロケット システム ( MLRS )、陸軍UH-60 Black Hawkヘリコプター、F100F117、およびF119 ジェット エンジンNORAD防空および管制システム (Hughes HME-5118ME システム)、およびRL-10 ロケット エンジン。JOVIAL ソフトウェアが組み込まれた航空機搭載レーダーシステムには、 APG-70APG-71APG-73が含まれます。

同じ目的でALGOL 68が DRA の一部で使用されました。参照。ウィキペディア:

1991 年 4 月から 1995 年 4 月まで、 「国防研究庁」(通常は「DRA」として知られる) は、英国国防省 (MOD) の執行機関でした。当時、DRA は英国の最大の科学技術組織。

DRA の Algol68 コンパイラは 1999 年 4 月についにオープンソース化され、現在は sourceforge からダウンロードできる Linux 用のものが提供されています。(ただし、「Algol68g」のインタープリターの方が使いやすいです)。

ICL の Algol68 はS3でした/S3です。これは、英国のInternational Computers Limited (ICL) が2900 シリーズメインフレーム用に開発したものです。ALGOL 68に基づくシステム プログラミング言語ですが、データ型と演算子は 2900 シリーズで提供されるものに合わせて調整されています。オペレーティング システムVMEの実装言語でした。

Algol68 バリアントで記述された(少なくとも) 他に 2 つの英国のオペレーティング システム、 FlexCambridge_CAP_computerがあります。また、1 つのソビエト OS: Эльбрус-1 (Elbrus-1)ですが、それらのソース コードはまだ見つかっていません(誰かがこのソース コードを見つけて配布できる場合は、お知らせください)

ところで: VME はLinux/Unixware ゲスト VM として実稼働環境でまだ実行されていると思います。主に連邦の税関/入国管理局で。

また、同時期にソ連は Algol68 を使用していました。履歴リンクを参照してください。Algol68 は、ロシアの電話交換機で使用されています。また、Algol58 はロシアの「ブラン/Буран」スペースシャトル着陸システムで使用されました。

ALGOL68 は 1968 年に国際化されました。他の国にも他の Algol プロジェクトがあるのではないかと思います。特にドイツ語、オランダ語、日本語、中国語ですが、詳細はわかりません。

実際に Algol68 を試したり、コードを投稿したりしたい場合は、Rosettacode のALGOL 68 リポジトリをチェックしてから、クラス プロジェクトとして「実装されていないタスク」の 1 つを試してください。

于 2009-09-27T21:55:21.073 に答える
10

2 年前のスレッドに応答するようなものはありません。私はほぼ毎日ALGOLでプログラミングしています。私は Unisys ClearPath メインフレームのプログラマであり、システム コードの大部分は ALGOL またはバリアントで書かれています。Burroughs B5500 は、この言語を中心に設計されているため、非常に効率的な言語/コンパイル プロセスです。確かに、このバージョンは制限されたクラス (構造ブロック) などの拡張機能を備えた ALGOL です。

i := 80;
while i > 0 do
   begin
   scan ptrRay:ptrRay for i:i until in ALPHA;
   scan ptrEnd:ptrRay for i:i while in ALPHA;
   if i > 0 then
      begin
      replace nextToken by ptrRay for (offset(ptrEnd) - offset(ptrRay)); 
      end;
   end;

そのコードは ALPHA のみのトークンをスキャンします。残余カウント計算 (i、starti など) を自分で使用するよりも少しコストがかかる OFFSET 関数を使用します。

于 2011-12-28T16:33:07.787 に答える
8

トムのように、私はほぼ毎日ALGOLでプログラムを行っています。また、UnisysClearpathにも参加しています。ALGOLは、私が覚えているよりも長い間、私の住宅ローン返済の主要な情報源でした。

于 2012-07-03T03:19:02.177 に答える
5

themisの回答をフォローアップするために、Burroughsの「大規模システム」ファミリ全体(5000、5500、5700、6500、6700 ...)は、Algolを適切に実行するように設計されています。オペレーティングシステム、コンパイラ、および主要なシステムユーティリティはAlgolで作成されました。それが「本物の」プログラミングではない場合、何ですか?

正確には、製品ファミリーの存続期間中、BurroughsはAlgolをESPOLと呼ばれるスーパーセットに拡張しました。バロウズが「スモールシステム」ファミリー(1700、1800、1900シリーズ)を発表したとき、彼らはそのラインのオペレーティングソフトウェアが書かれたSDL(システム開発言語)と呼ばれる別のアルゴルのような言語を定義しました。セキュリティ上の理由から、SDLへのアクセスは制限されていました。その後、SDLのバリアントが作成され、いくつかの「特権」機能が削除されました。結果として得られたUPL(ユーザープログラミング言語)と呼ばれる言語は、顧客が使用できるようになりました。

「Algolのような言語」というフレーズが、ブロック指向の制御構造と変数スコープを備えたプログラミング言語を説明するために使用されたときのことを今でも覚えている人もいます。Algolに似た言語の広く知られている例には、PL / I、Pascal、および(...それを待つ...)Cが含まれます。

于 2010-01-21T02:59:57.963 に答える
5

私がプログラミングを始めたとき、利用できるコンパイラは Algol だけでした。はい、Fortran コンパイラが登場するまでは主流でした。

于 2009-09-23T00:32:43.907 に答える
4

Algol はBurroughs B5000の主要なプログラミング言語でした。

于 2009-09-23T03:53:25.780 に答える
3

私の最初のプログラミング体験は、1970 年に開始された、Northern Natural Gas Company が所有する Burroughs B5500 でした。私は COBOL から始めましたが、ALGOL に切り替えました (実際には両方を使用しました)。ほぼ完全にALGOLです。当時は、ビジネス システムとサイエンティフィック コンピューティングという 2 つのプログラミング部門がありました。科学計算部門は ALGOL と FORTRAN でプログラムされていましたが、ビジネス システム部門はほとんどが COBOL で、ALGOL が少しありました。私がそこにいる間、ノーザンはB5500からB6500、B6700、B6900、B7800、B7900に進みました。私は最終的にテクニカル サポート部門に異動し、ノーザンのニーズに合わせてシステムをカスタマイズするための MCP パッチの作成とサポートに取り掛かりました。それは楽しかった!

質問への短い答え。はい。ノーザンには、ALGOL で書かれた多数のアプリケーション システムがありました。もちろん、それは ALGOL (拡張 ALGOL) のバローのバージョンでした。

于 2014-01-08T21:14:01.050 に答える
3

しかし、はっきりしていないのは、Algol (Simula のような派生物ではなく、純粋な Algol) が何らかの形で「実際の」プログラミングに実際に使用されたことがあるということです。

「本物の」プログラミングという用語は避けてください。「リアル」 - 何に対して?想像力?

「本物」とは、プログラミング言語/CS 研究以外のいくつかのかなりの規模のプロジェクト、またはかなりの数の開発者 (たとえば、1000 人以上) によって使用されることを意味します。

はい。これは、特定の数の開発者が作業する特定の数のプロジェクトに使用されました。

ただ、今日よく誤解されているのはこれです。当時、コンピューターは家庭用品ではありませんでした。
プログラミングは、政府所有 (軍事、学術、さまざまな種類の機関) または民間企業 (大企業) のいずれかであるコンピューター センターで行われていました。そして、プログラミングは専門職ではありませんでした。エンジニア、数学者、科学者などが紙の上で作業を行っていたときに行っていたものでした...または、プログラミングを行う専門のオペレーターがいた. 多くの場合、その特定の分野で科学的なバックグラウンドを持っているかどうかにかかわらず、女性は「言語翻訳者」であり、より適切な用語がありませんでした(そして私の下手な英語)。

プログラミングの理論と研究はまだ始まったばかりでした... ベンダーはほとんどありませんでした (そして当然のことながらお互いに協力的ではありませんでした) ... それぞれが独自の拡張機能を使用していました。
何かを行うための「正しい方法」はありませんでした...あなたにはそれがあり、それがあり、問題を回避するために考えられるあらゆるキャッチを使用しました。

しかし、私はさまよいました。人数に戻します。これは、他のいくつかの言語にも当てはまります。たとえば、fortran と cobol です。「使っている人は少ない」と言われます。それは単に真実ではありません。真実は、今日それを使用している人はごくわずかですが、以前はそれを使用していた人の方が多いということです.

私が言ったように、当時は科学だけでした。と英語。コミュニティはそれを行っていました。そして、その数は総人口に比べて比較的少なかった. 今日では誰もがコンピューターを使用していますが、エンジニアや数学者などの絶対数はほとんど同じです。そのため、これらの言語を使用する人はもう誰もいないようです... 一方、実際には、特定の特殊言語 (最近ではこれは algol よりも fortran や cobol に当てはまります) のユーザー数はほぼ一定です。

個人的には、私がこれまでに行った Algol プログラミングは紙の上だけだったので、好奇心です。

私はあなたの質問に答えていないことを知っていますが、これを明確にしたかっただけです. Algol は少し「私の時代より前」でした。

于 2009-09-23T01:17:06.420 に答える
2

Burroughs B5500 Extended Algol は、60 年代後半に私の大学 (オーストラリアのモナッシュ大学) で天体物理学、言語学、および統計学の研究に多用されました。また、コンピューター センターの請求書の支払いに役立つ商用アプリケーションでも使用されました。

これを書いているとき、私はタスマニアの retro-b5500 のチームからの Burroughs B5500 エミュレーターの最新リリースで Algol プログラムを実行しています。エミュレーターは完全にブラウザーで実行され、プロセッサー、ディスク、テープ、カード リーダー、ライン プリンター、カード パンチ、データ通信機器を忠実にモデル化します。

このプロジェクトについては、http://retro-b5500.blogspot.com/およびhttp://code.google.com/p/retro-b5500で読むことができ、これまでに作られた中でおそらく最高の Algol マシン用の Algol プログラムを作成できます (おそらくその後継の B6700 を除いて。)

Monash のポスドクの 1 人が、Algol で IBM Assembler から Burroughs COBOL へのリバース コンパイラを作成しました。これは、国営 Gas & Fuel Corporation のすべての課金アプリケーションを IBM 360 から Burroughs 6700 に移行するために使用されました。

于 2014-10-11T02:34:34.937 に答える