RFC5 日本語訳
0005 Decode Encode Language (DEL). J. Rulifson. June 1969. (Format: TXT=26408 bytes) (Status: UNKNOWN)
プログラムでの自動翻訳です。
RFC一覧
英語原文
Network Working Group 4691 RFC-5 Jeff Rulifson June 2, l969
作業部会4691RFC-5ジェフRulifson6月2日、l969をネットワークでつないでください。
DEL
デル
:DEL, 02/06/69 1010:58 JFR ; .DSN=1; .LSP=0; ['=] AND NOT SP ; ['?]; dual transmission?
:デル、1010年02/06/69: 58JFR。 .DSN=1。 .LSP=0。 ['=] AND NOT SP'。 ['?]; 二元的なトランスミッション?
ABSTRACT
要約
The Decode-Encode Language (DEL) is a machine independent language tailored to two specific computer network tasks:
Decode-エンコードLanguage(DEL)は独立している言語が2つの特定のコンピュータネットワークタスクに適合させたマシンです:
accepting input codes from interactive consoles, giving immediate feedback, and packing the resulting information into message packets for network transmissin.
即座のフィードバックを与えて、ネットワークtransmissinのために結果として起こる情報にメッセージパケットに詰め込んで、受諾は対話的なコンソールからコードを入力しました。
and accepting message packets from another computer, unpacking them, building trees of display information, and sending other information to the user at his interactive station.
そして、表示情報、および発信の木に他の情報を築き上げて、彼の対話的なステーションのユーザにそれらをアンパックして、別のコンピュータからメッセージパケットを受け入れること。
This is a working document for the evolution of the DEL language. Comments should be made through Jeff Rulifson at SRI.
これはDEL言語の発展のための働くドキュメントです。 SRIでジェフRulifsonを通してコメントをするべきです。
FORWARD
転送
The initial ARPA network working group met at SRI on October 25-26, 1968.
初期のARPAネットワークワーキンググループは1968年10月25日〜26日にSRIで会合しました。
It was generally agreed beforehand that the runmning of interactive programs across the network was the first problem that would be faced.
一般に、あらかじめ、ネットワークの向こう側の双方向番組のrunmningが直面されている第1の問題であるのに同意されました。
This group, already in agreement about the underlaying notions of a DEL-like approach, set down some terminology, expectations for DEL programs, and lists of proposed semantic capability.
このDELのようなアプローチの下盛概念に関して既に合意したグループは何らかの用語、DELプログラムへの期待、および提案された意味能力のリストを置きます。
At the meeting were Andrews, Baray, Carr, Crocker, Rulifson, and Stoughton.
ミーティングに、アンドリュース、Baray、カー、クロッカー、Rulifson、およびストートンはありました。
A second round of meetings was then held in a piecemeal way.
そして、ミーティングの2番目のラウンドはばらばらの方法で保持されました。
Crocker meet with Rulifson at SRI on November 18, 1968. This resulted in the incorporation of formal co-routines.
クロッカーは1968年11月18日にSRIでRulifsonに会います。 これは正式なコルーチンの編入をもたらしました。
and Stoughton meet with Rulifson at SRI on Decembeer 12, 1968. It was decided to meet again, as a group, probably at UTAH, in late January 1969.
そして、ストートンはDecembeer12、1968のSRIでRulifsonに会います。 それは、1月の1969下旬にグループとしてたぶんユタで再会するために決められました。
The first public release of this paper was at the BBN NET meeting in Cambridge on February 13, 1969.
この紙の最初の公共のリリースが1969年2月13日にケンブリッジでのBBN NETミーティングにありました。
NET STANDARD TRANSLATORS
ネットの標準の翻訳者
NST The NST library is the set of programs necessary to mesh efficiently with the code compiled at the user sites from the DEL programs it receives. The NST-DEL approach to NET interactive system communication is intended to operate over a broad spectrum.
NST、NSTライブラリは効率的にユーザの現場でそれが受け取るDELプログラムからコンパイルされたコードと合うのに必要なプログラムのセットです。 NETの対話的なシステム・コミュニケーションへのNST-DELアプローチが広いスペクトルの上で作動することを意図します。
The lowest level of NST-DEL usage is direct transmission to the server-host, information in the same format that user programs would receive at the user-host.
最も低いレベルのNST-DEL用法はサーバー・ホスト(ユーザ・プログラムがユーザー・ホストで受ける同じ書式における情報)への直線伝動です。
In this mode, the NST defaults to inaction. The DEL program does not receive universal hardware representation input but input in the normal fashion for the user-host.
このモードで、NSTは無活動をデフォルトとします。 DELプログラムはユーザー・ホストのために正常なファッションで入力されますが、入力された普遍的な金物表現を受け止めません。
And the DEL 1 program becomes merely a message builder and sender.
そして、DEL1プログラムは単にメッセージ建築業者と送付者になります。
A more intermediate use of NST-DEL is to have echo tables for a TTY at the user-host.
NST-DELの、より中間的な使用はユーザー・ホストにTTYのためのエコーテーブルを持つことです。
In this mode, the DEL program would run a full duplex TTY for the user.
このモードで、DELプログラムはユーザのために全二重TTYを走らせるでしょう。
It would echo characters, translate them to the character set of the server-host, pack the translated characters in messages, and on appropriate break characters send the messages.
それは、キャラクタの言葉を繰り返して、サーバー・ホストの文字の組に彼らを翻訳して、メッセージで翻訳されたキャラクタを梱包して、適切な区切り文字にメッセージを送るでしょう。
When messages come from the server-host, the DEL program would translate them to the user-host character set and print them on his TTY.
メッセージがサーバー・ホストから来るとき、DELプログラムは、ユーザー・ホスト文字の組にそれらを翻訳して、彼のTTYにそれらを印刷するでしょう。
A more ambitious task for DEL is the operation of large, display-oriented systems from remote consoles over the NET.
DELには、より野心満々のタスクはNETの上の遠隔制御卓からの大きくて、表示指向のシステムの操作です。
Large interactive systems usually offer a lot of feedback to the user. The unusual nature of the feedback make it impossible to model with echo table, and thus a user program must be activated in a TSS each time a button state is changed.
通常、大きい対話的なシステムは多くのフィードバックをユーザに提供します。 フィードバックの珍しい本質でエコーテーブルでモデル化するのは不可能になります、そして、その結果、ユーザ・プログラムはボタンの状態を変えるたびにTSSを動かなければなりません。
This puts an unnecessarily large load on a TSS, and if the system is being run through the NET it could easily load two systems.
これは不必要に大きい負荷をTSSに置きます、そして、システムがNETを通して動かされているなら、それは容易に2台のシステムをロードするかもしれません。
To avoid this double overloading of TSS, a DEL program will run on the user-host. It will handle all the immediate feedback, much like a complicated echo table. At appropriate button pushes, message will be sent to the server-host and display updates received in return.
TSSのこの二重積みすぎを避けるために、DELプログラムはユーザー・ホストで動くでしょう。 それは複雑なエコーテーブルのようにすべての即座のフィードバックを扱うでしょう。 適切なボタンのプッシュでは、代わりに受けられたサーバー・ホストと表示アップデートにメッセージを送るでしょう。
One of the more difficult, and often neglected, problems is the effective simulation of one nonstandard console on another non- standard console.
より難しくて、しばしば無視された問題の1つは別の非標準のコンソールにおける1台の標準的でないコンソールの効果的なシミュレーションです。
We attempt to offer a means of solving this problem through the co-routine structure of DEL programs. For the complicated interactive systems, part of the DEL programs will be constructed by the server-host programmers. Interfaces between this program and the input stream may easily be inserted by programmers at the user-host site.
私たちは、DELプログラムのコルーチン構造を通してこの問題を解決する手段を提供するのを試みます。複雑な対話的なシステムにおいて、DELプログラムの一部がサーバー・ホストのプログラマによって構成されるでしょう。 このプログラムと入力ストリームとのインタフェースはユーザー・ホストサイトのプログラマによって容易に挿入されるかもしれません。
UNIVERSAL HARDWARE REPRESENTATION
普遍的な金物表現
To minimize the number of translators needed to map any facility's user codes to any other facility, there is a universal hardware representation.
どんな施設のユーザコードもいかなる他の施設にも写像するのが必要である翻訳者の数を最小にするために、普遍的な金物表現があります。
This is simply a way of talking, in general terms, about all the hardware devices at all the interactive display stations in the initial network.
これは単に話す方法です、あいまいな言葉で、初期のネットワークにおけるすべての対話的な表示ステーションのすべてのハードウェアデバイスに関して。
For example, a display is thought of as being a square, the mid-point has coordinates (0.0), the range is -1 to 1 on both axes. A point may now be specified to any accuracy, regardless of the particular number of density of rastor points on a display.
範囲は、両方の軸の上の-1〜例えば、表示が正方形であるとして考えられて、中点には、座標(0.0)があって、1です。 ポイントは現在どんな精度にも指定されるかもしれません、表示の上のrastorポイントの密度の特定の数にかかわらず。
The representation is discussed in the semantic explanations accompanying the formal description of DEL.
DELの形式的記述に伴う意味説明で表現について議論します。
INTRODUCTION TO THE NETWORK STANDARD TRANSLATOR (NST)
ネットワークの標準の翻訳者への紹介(スタントン数)
Suppose that a user at a remote site, say Utah, is entered in the AHI system and wants to run NLS.
リモートサイトでそれがユーザであると思って、ユタを言って、AHIシステムに入られて、NLSを走らせたいです。
The first step is to enter NLS in the normal way. At that time the Utah system will request a symbolic program from NLS.
第一歩は正常な方法でNLSに入ることです。 その時、ユタシステムはNLSからシンボリックなプログラムを要求するでしょう。
REP This program is written in DEL. It is called the NLS Remote Encode Program (REP).
REP ThisプログラムはDELに書かれています。 それはNLS Remote Encode Program(REP)と呼ばれます。
The program accepts input in the Universal Hardware Representation and translates it to a form usable by NLS.
プログラムは、Universal Hardware Representationで入力を受け入れて、NLSが使用可能なフォームにそれを翻訳します。
It may pack characters in a buffer, also do some local feedback.
それは、バッファでキャラクタを梱包して、また、何らかのローカルのフィードバックをするかもしれません。
When the program is first received at Utah it is compiled and loaded to be run in conjunction with a standard library.
最初にユタにプログラムを受け取るとき、それをコンパイルして、標準のライブラリとの接続詞に立候補することになるようにロードします。
All input from the Utah console first goes to the NLS NEP. It is processed, parsed, blocked, translated, etc. When NEP receives a character appropriate to its state it may finally initiate transfers to the 940. The bits transferred are in a form acceptable to the 940, and maybe in a standard form so that the NLSW need not differentiate between Utah and other NET users.
ユタコンソールからのすべての入力が最初に、NLS NEPに行きます。 それは、処理されて、分析されて、妨げられて、翻訳されますなど。 NEPが状態に適切なキャラクタを受けるとき、それは最終的に940への転送を起こすかもしれません。 移されたビットは、NLSWがユタと他のNETユーザを区別する必要はないように、940、および多分標準形式に許容しているフォームにあります。
ADVANTAGES OF NST
スタントン数の利点
After each node has implemented the library part of the NST, it need only write one program for each subsystem, namely the symbolic file it sends to each user that maps the NET hardware representation into its own special bit formats.
各ノードがNSTのライブラリの一部を実行した後に、それは各サブシステムあたり1つのプログラム、すなわち、それ自身の特別な噛み付いている形式にNET金物表現を写像する各ユーザに送るシンボリックなファイルを書くだけでよいです。
This is the minimum programming that can be expected if console is used to its fullest extent.
これはコンソールが最もふくよかな範囲まで使用されるなら予想できる最小のプログラミングです。
Since the NST which runs the encode translation is coded at the user site, it can take advantage of hardware at its consoles to the fullest extent. It can also add or remove hardware features without requiring new or different translation tables from the host.
エンコード翻訳を走らせるNSTがユーザの現場でコード化されるので、それは最大限にコンソールでハードウェアを利用できます。 新しいか異なった変換テーブルを必要としないで、また、それは、ホストからハードウェア機能を加えるか、または取り除くことができます。
Local users are also kept up to date on any changes in the system offered at the host site. As new features are added, the host programmers change the symbolic encode program. When this new program is compiled and used at the user site, the new features are automatically included.
また、地元のユーザはホストサイトで提供されたシステムにおけるどんな変化の上も時代について行きます。 新機能が加えられるとき、ホストプログラマはシンボリックなエンコードプログラムを変えます。 この新プログラムがユーザの現場でコンパイルされて、使用されるとき、新機能は自動的に含まれています。
The advantages of having the encode translation programs transferred symbolically should be obvious.
エンコード翻訳プログラムを象徴的に移させる利点は明白であるべきです。
Each site can translate any way it sees fit. Thus machine code for each site can be produced to fit that site; faster run times and greater code density will be the result.
各サイトはそれが適していると決めるどんな道も翻訳できます。 したがって、そのサイトに合うように各サイトへの機械コードを作成できます。 より速いランタイムと、より大きいコード密度は結果になるでしょう。
Moreover, extra symbolic programs, coded at the user site, may be easily interfaced between the user's monitor system and the DEL program from the host machine. This should ease the problem of console extension (e.g. accommodating unusual keys and buttons) without loss of the flexibility needed for man-machine interaction.
そのうえ、ユーザの現場でコード化された余分なシンボリックなプログラムはユーザのモニタシステムとホスト・マシンからのDELプログラムの間で容易に連結されるかもしれません。 これは男性マシン相互作用に必要である柔軟性の損失なしでコンソール拡大(例えば、親切な珍しいキーとボタン)の問題を緩和するべきです。
It is expected that when there is matching hardware, the symbolic programs will take this into account and avoid any unnecessary computing. This is immediately possible through the code translation constructs of DEL. It may someday be possible through program composition (when Crocker tells us how??)
合っているハードウェアがあるとき、シンボリックなプログラムがこれを考慮に入れて、どんな不要なコンピューティングも避けると予想されます。 これはすぐに、DELのコード変換構造物を通して可能です。 それはいつか、プログラム構成で可能であるかもしれません。(クロッカーが私たちに言うとき、どのようにですか?)
AHI NLS - USER CONSOLE COMMUNICATION - AN EXAMPLE
AHI NLS--ユーザコンソールコミュニケーション--例
BLOCK DIAGRAM
ブロック図
The right side of the picture represents functions done at the user's main computer; the left side represents those done at the host computer.
絵の右側はユーザのメインコンピュータに行われた機能を表します。 左側はホストコンピュータで行われたものを表します。
Each label in the picture corresponds to a statement with the same name.
絵の各ラベルは同じ名前で声明に対応しています。
There are four trails associated with this picture. The first links (in a forward direction) the labels which are concerned only with network information. The second links the total information flow (again in a forward direction). The last two are equivalent to the first two but in a backward direction. They may be set with pointers t1 through t4 respectively.
この絵に関連している4つの道があります。 1番目はネットワーク情報だけに関するラベルをリンクします(順方向に)。 2番目は総情報流動(再び順方向への)をリンクします。 最後の2は最初の2にもかかわらず、逆方向に同等です。 それらはそれぞれポインタのt1からt4があるセットであるかもしれません。
[">tif:] OR I" >nif"]; ["<tif:] OR ["<nif"];
「[「>tif:、]、OR I」>がnifする、」、]、。 [「<tif:、]、」 [「<nif」]。
USER-TO-HOST TRANSMISSION
ユーザからホストへのトランスミッション
Keyboard is the set of input devices at the user's console. Input bits from stations, after drifting through levels of monitor and interrupt handlers, eventually come to the encode translator. [>nif(encode)]
キーボードはユーザのコンソールの入力装置のセットです。 ステーションからの入力ビットは結局、モニターと割り込みハンドラのレベルを通して漂流した後に、エンコード翻訳者に来ます。 [>nif(エンコード)]
Encode maps the semi-raw input bits into an input stream in a form suited to the serving-host subsystem which will process the input. [>nif(hrt)<nif(keyboard)]
エンコードは入力を処理する給仕ホストサブシステムに合ったフォームで準生の入力ビットを入力ストリームに写像します。 [>nif(hrt)<nif(キーボード)]
The Encode program was supplied by the server-host subsystem when the subsystem was first requested. It is sent to the user machine in symbolic form and is compiled at the user machine into code particularly suited to that machine.
最初にサブシステムを要求したとき、サーバー・ホストサブシステムでEncodeプログラムを提供しました。 それは、記号形式でユーザマシンに送られて、ユーザマシンで特にそのマシンに合ったコードにコンパイルされます。
It may pack to break characters, map multiple characters to single characters and vice versa, do character translation, and give immediate feedback to the user.
それは、ユーザにキャラクタを調教するために荷造りして、逆もまた同様にキャラクタを選抜するために複数のキャラクタを写像して、文字変換をして、即座のフィードバックを与えるかもしれません。
1 dm Immediate feedback from the encode translator first goes to local display management, where it is mapped from the NET standard to the local display hardware.
1 エンコード翻訳者からのdm Immediateフィードバックは最初に、ローカルの表示管理に行きます。そこでは、それがNET規格からローカルの表示ハードウェアまで写像されます。
A wide range of echo output may come from the encode translator. Simple character echoes would be a minimum, while command and machine-state feedback will be common.
さまざまなエコー出力がエンコード翻訳者から来るかもしれません。 簡単なキャラクタエコーは最小限でしょうが、コマンドとマシン州のフィードバックは一般的になるでしょう。
It is reasonable to expect control and feedback functions not even done at the server-host user stations to be done in local display control. For example, people with high-speed displays may want to selectively clear curves on a Culler display, a function which is impossible on a storage tube.
地方の表示制御でサーバー・ホストユーザステーションで行われてさえいなかったコントロールとフィードバック機能をすると予想するのは妥当です。 例えば、高速表示の人々はCuller表示(蓄積管で不可能な機能)のときに選択的にカーブをクリアしたがっているかもしれません。
Output from the encode translator for the server-host goes to the invisible IMP, is broken into appropriate sizes and labeled by the encode translator, and then goes to the NET-to-host translator.
サーバー・ホストのためのエンコード翻訳者からの出力は、目に見えないIMPに行って、エンコード翻訳者によって適切なサイズが細かく分けられて、ラベルされて、そして、NETからホストへの翻訳者のものになります。
Output from the user may be more than on-line input. It may be larger items such as computer-generated data, or files generated and used exclusively at the server-host site but stored at the user-host site.
ユーザからの出力はオンライン入力以上であるかもしれません。 それがコンピューター生成データなどの、より大きい項目であるかもしれないかファイルは、発生して排他的にサーバー・ホストサイトで中古ですが、ユーザー・ホストサイトに格納されています。
Information of this kind may avoid translation, if it is already in server-host format, or it may undergo yet another kind of translation if it is a block of data.
この種類に関する情報は翻訳を避けるかもしれません、サーバー・ホスト形式にはそれが既にあるか、または1ブロックのデータであるならやがてもう1種類の翻訳を受けるかもしれないなら。
hrp It finally gets to the host, and must then go through the host reception program. This maps and reorders the standard transmission-style packets of bits sent by the encode programs into messages acceptable to the host. This program may well be part of the monitor of the host machine. [>tif(net mode)<nif(code)]
hrp Itは最終的にホストに賄賂を送ります、そして、その時はホストレセプションプログラムを通らなければなりませんか? ビットの標準のトランスミッションスタイルパケットがエンコードプログラムでホストにとって、許容できるメッセージに送ったこの地図と追加注文。 このプログラムはたぶんホスト・マシンのモニターの一部でしょう。 [>tif(ネットのモード)<nif(コード)]
HOST-TO-USER TRANSMISSION
ホストからユーザへのトランスミッション
decode Output from the server-host initially goes through decode, a translation map similar to, and perhaps more complicated than, the encode map. [>nif(urt)>tif(imp ctrl)<tif(net mode)]
解読、サーバー・ホストからのOutputは初めは解読しに通じて行きます、a翻訳地図同様である、恐らくさらに複雑にされる、エンコード地図。 [>nif(urt)>tif(悪童ctrl)<tif(ネットのモード)]
This map at least formats display output into a simplified logical-entity output stream, of which meaningful pieces may be dealt with in various ways at the user site.
この地図は簡易型の論理的な実体出力ストリームに表示出力を少なくともフォーマットします。(いろいろユーザの現場でそれで重要な断片に対処するかもしれません)。
The Decode program was sent to the host machine at the same time that the Encode program was sent to the user machine. The program is initially in symbolic form and is compiled for efficient running at the host machine.
Encodeプログラムをユーザマシンに送ったのと同時にDecodeプログラムをホスト・マシンに送りました。 プログラムは、初めは、記号形式にあって、ホスト・マシンでの効率的な走行のためにコンパイルされます。
Lines of charaters should be logically identified so that different line widths can be handled at the user site.
charatersの線は、ユーザの現場で異なった線幅を扱うことができるように論理的に特定されるべきです。
Some form of logical line identification must also be made. For example, if a straight line is to be drawn across the display this fact should be transmitted, rather than a series of 500 short vectors.
また、何らかの形式の論理行識別をしなければなりません。 直線が例えば表示の向こう側に描かれるために、この事実が一連の500少ないベクトルよりむしろ伝えられるべきであるということであるなら。
As things firm up, more and more complicated structural display information (in the manner of LEAP) should be sent and accommodated at user sites so that the responsibility for real-time display manipulation may shift closer to the user.
堅いものとして、上がります、ますます複雑な構造的な表示情報(LEAPの方法による)は、本当の時間表示操作への責任がユーザの、より近くで移行できるように、ユーザの現場に送られて、収容されるべきです。
imp ctrl The server-host may also want to send control information to IMPs. Formatting of this information is done by the host decoder. [>tif(urt) <tif(decode)]
また、サーバー・ホストの悪童ctrlは制御情報をIMPsに送りたがっているかもしれません。 ホストデコーダはこの情報の形式をします。 [>tif(urt)<tif(解読します)]
The other control information supplied by the host decoder is message break up and identification so that proper assembly and sorting can be done at the user site.
ホストデコーダによって提供されたもう片方の制御情報は、ユーザの現場で適切なアセンブリとソーティングができるためのメッセージ離散と識別です。
From the host decoder, information does to the invisible IMP, and directly to the NET-to-user translator. The only operation done on the messages is that they may be shuffled.
ホストデコーダから、情報は目に見えないIMPと、そして、直接NETからユーザへの翻訳者にそうします。 メッセージで行われた唯一の操作はそれらがシャッフルされるかもしれないということです。
urt The user reception translator accepts messages from the user-site IMP 1 and fixes them up for user-site display. [>nif(d ctrl)>tif(prgm ctrl)<tif(imp ctrl)<nif(decode)]
ユーザレセプション翻訳者のurtはユーザの現場IMP1からメッセージを受け入れて、ユーザの現場表示のためにそれらを修理します。 [>nif(d ctrl)>tif(prgm ctrl)<tif(悪童ctrl)<nif(解読します)]
The minimal action is a reordering of the message pieces.
最小量の動きはメッセージ片の再命令です。
dctrl For display output, however, more needs to be done. The NET logical display information must be put in the format of the user site. Display control does this job. Since it coordinates between (encode) and (decode) it is able to offer features of display management local to the user site. [>nif(display)<nif(urt)]
dctrl Forは出力を表示して、しかしながら、以上は、する必要があります。 NETの論理的な表示情報をユーザの現場の形式に入れなければなりません。 表示制御はこの仕事をします。 以来、(エンコード)の間で調整します、そして、(解読します)それはユーザの現場へのローカルの表示管理の特徴を提供できます。 [>nif(表示)<nif(urt)]
prgmctrl Another action may be the selective translation and routing of information to particular user-site subsystems. [>tif(dctrl)<tif(urt)]
prgmctrl Another動作は、特定のユーザの現場サブシステムへの情報の選択している翻訳とルーティングであるかもしれません。[>tif(dctrl)<tif(urt)]
For example, blocks of floating-point information may be converted to user-style words and sent, in block form, to a subsystem for processing or storage.
例えば、ブロックの浮動小数点の情報をユーザスタイル単語に変換して、送るかもしれません、ブロック・フォームで、処理か格納のためのサブシステムに。
The styles and translation of this information may well be a compact binary format suitable for quick translation, rather than a print-image-oriented format.
この情報に関するスタイルと翻訳はたぶん印刷イメージ指向の形式よりむしろ迅速な翻訳に適したコンパクトなバイナリフォーマットでしょう。
(display) is the output to the user. [<nif(d ctrl)]
(表示)はユーザへの出力です。 [<nif(d ctrl)]
USER-TO-HOST INDIRECT TRANSMISSION
ユーザからホストへの間接的なトランスミッション
(net mode) This is the mode where a remote user can link to a node indirectly through another node. [<nif(decode)<tif(hrt)]
(ネットのモード) これはリモート・ユーザーが間接的に別のノードを通してノードにリンクできるモードです。 [<nif(解読する)<tif(hrt)]
DEL SYNTAX
デルSYNTAX
NOTES FOR NLS USERS
NLSユーザへの注意
All statements in this branch which are not part of the compiler must end with a period.
このブランチにおけるコンパイラの一部でないすべての声明が期間で終わらなければなりません。
To compile the DEL compiler:
DELコンパイラをコンパイルするために:
Set this pattern for the content analyzer ( (symbol for up arrow)P1 SE(P1) <-"-;). The pointer "del" is on the first character of pattern.
「満足している分析器(上の矢のために、象徴する)のP1 SE(P1)<にこのパターンを設定してください」、-、) パターンの最初のキャラクタの上にポインタ"del"があります。
Jump to the first statement of the compiler. The pointer "c" is on this statement.
コンパイラの最初の声明までジャンプしてください。 ポインタ「c」がこの声明にあります。
And output the compiler to file ( '/A-DEL' ). The pointer "f" is on the name of the file for the compiler output -
そして、ファイルするコンパイラ('/A-DEL')を出力してください。 ポインタ「f」がコンパイラ出力のためのファイルの名前にある、-
PROGRAMS
プログラム
SYNTAX
構文
-meta file (k=100.m=300,n=20,s=900)
-メタファイル(k=100.m=300、n=20、s=900)
file = mesdecl $declaration $procedure "FINISH";
=mesdecl$宣言$手順「終わり」をファイルしてください。
procedure =
手順=
procname (
procname、(
(
(
type "FUNCTION" /
「機能」/をタイプしてください。
"PROCEDURE" ) .id (type .id / -empty)) /
「手順」) .id(タイプ.id/空の) /
"CO-ROUTINE") ' /
「コルーチン」) ' /
$declaration labeledst $(labeledst ';) "endp.";
$'宣言labeledst$、(labeledst、'、)、"endp"。
labeledst = ((left arrow symbol).id ': / .empty) statement;
'labeledstは(左向きの矢シンボル).idと等しい': /.empty) 声明
type = "INTEGER" / "REAL" ;
=「整数」/「本当」の状態で、タイプしてください。
procname = .id;
procnameは.idと等しいです。
Functions are differentiated from procedures to aid compilers in better code production and run time checks.
機能は、より良いコード生産でコンパイラを支援するために手順と区別されます、そして、ランタイムはチェックします。
Functions return values.
機能は値を返します。
Procedures do not return values.
手順は値を返しません。
Co-routines do not have names or arguments. Their initial envocation points are given the pipe declaration.
コルーチンには、名前か議論がありません。 それらの初期のenvocationポイントにパイプ宣言を与えます。
It is not clear just how global declarations are to be??
それは明確ために宣言がいったいどれくらいグローバルであるかを明確ではありませんか?
DECLARATIONS
宣言
SYNTAX
構文
declaration = numbertype / structuredtype / label / lcl2uhr / uhr2rmt / pipetype;
宣言はnumbertype / structuredtype /ラベル/ lcl2uhr / uhr2rmt / pipetypeと等しいです。
numbertype = : ("REAL" / "INTEGER") ("CONSTANT" conlist / varlist);
numbertype=: (「本当」/「整数」) (「一定」のconlist / varlist)。
conlist =
conlist=
.id '(left arrow symbol)constant
.id、'(左向きの矢シンボル)定数'
$('. .id '(left arrow symbol)constant);
$('. .id'(左向きの矢シンボル)定数);、'
varlist =
varlist=
.id ('(left arrow symbol)constant / .empty)
.id('(左向きの矢シンボル)定数/.empty)'
$('. .id('(left arrow symbol)constant / .empty));
$、('. .id('(左向きの矢シンボル)定数/.empty)'
idlist = .id $('. .id);
idlist=.id$('. .id)、'、。
structuredtype = (tree" / "pointer" / "buffer" ) idlist;
「structuredtypeはidlistと等しいです(」 /「ポインタ」/「バッファ」を木に追い上げます)。
label = "LABEL1" idlist;
"LABEL1" idlist"と=をラベルしてください。
pipetype = PIPE" pairedids $(', pairedids);
「pipetypeはPIPEと等しく」pairedids$、('、pairedids)、'、。
pairedids = .id .id;
pairedidsは.id .idと等しいです。
procname = .id;
procnameは.idと等しいです。
integerv = .id;
integervは.idと等しいです。
pipename = .id;
pipenameは.idと等しいです。
labelv = .id;
labelvは.idと等しいです。
Variables which are declared to be constant, may be put in read-only memory at run time.
一定であると宣言される変数はランタイムのときにリードオンリーメモリを入れることであるかもしれません。
The label declaration is to declare cells which may contain the machine addresses of labels in the program as their values. This is not the B5500 label declaration.
ラベル宣言はそれらの値としてプログラムにラベルの機械語アドレスを含むかもしれないセルを申告することです。 これはB5500ラベル宣言ではありません。
In the pipe declaration the first .ID of each pair is the name of the pipe, the second is thke initial starting point for the pipe.
パイプ宣言では、それぞれの組の最初の.IDがパイプの名前である、2番目はパイプのためのthkeの初期の出発点です。
ARITHMETIC
演算
SYNTAX
構文
exp = "IF" conjunct "THEN" exp "ELSE" exp;
expは“IF"の結合している「当時」のexp「ほか」のexpと等しいです。
sum = term (
合計=用語、(
'+ sum /
'+ 合計/'
'- sum /
'--/をまとめてください'
-empty);
-空である、)、。
term = factor (
用語=要素、(
'* term /
'*用語/'
'/ term /
'/用語/'
'(up arrow symbol) term /
'(矢のシンボルへの)用語/'
.empty);
.empty)、。
factor = '- factor / bitop;
'=を因数分解してください'--要素/bitop
bitop = compliment (
bitop=賛辞、(
'/' bitop /
'/'bitop/
'/'\ bitop /
'/'\bitop/
'& bitop / (
'bitop/、('
.empty);
.empty)、。
compliment = "--" primary / primary;
=「--」予備選挙/予備選挙を賞賛してください。
(symbol for up arrow) means mod. and /\ means exclusive or.
または(\が排他的であることを矢) 手段モッズ/に意味するので象徴してください。
Notice that the uniary minus is allowable, and parsed so you can write x*-y.
x*yを書くことができるようにuniaryマイナスが許容できて、分析されているのに注意してください。
Since there is no standard convention with bitwise operators, they all have the same precedence, and parentheses must be used for grouping.
ビット単位の演算子とのどんな一般的なコンベンションもないので、彼らには皆、同じ先行があります、そして、組分けに括弧を使用しなければなりません。
Compliment is the l's compliment.
賛辞はlの賛辞です。
It is assumed that all arithmetic and bit operations take place in the mode and style of the machine running the code. Anyone who takes advantage of word lengths, two's compliment arithmetic, etc. will eventually have problems.
すべての演算とビット演算がコードを走らせるマシンのモードとスタイルで行われると思われます。 などには、だれでも語長を利用する2歳の人が演算を賞賛して、結局、問題があるでしょう。
PRIMARY
予備選挙
SYNTAX
構文
primary =
予備選挙=
constant /
定数/
builtin /
作り付けの/
variable / (
変数/、(
block /
ブロック/
'( exp ');
'、(exp、'、)、。
variable = .id (
可変=.id、(
'(symbol for left arrow) exp /
'(左向きの矢のシンボル)exp/'
'( block ') /
'、(ブロック、'、)、/
.empty);
.empty)、。
constant = integer / real / string;
一定の=整数/本当の/ストリング。
builtin =
作り付けの=
mesinfo /
mesinfo/
cortnin /
cortnin/
("MIN" / "MAX") exp $('. exp) '/ ;
(「分」/「マックス」)exp$('. exp)'/。
parenthesized expressions may be a series of expressions. The value of a series is the value of the last one executed at run time.
parenthesized表現は一連の表現であるかもしれません。 シリーズの値はランタイムのときに実行された最後のものの値です。
Subroutines may have one call by name argument.
サブルーチンには、1つの名前変え議論があるかもしれません。
Expressions may be mixed. Strings are a big problem? Rulifson also wants to get rid of real numbers!!
表現は複雑であるかもしれません。 ストリングは重要な問題ですか? また、Rulifsonは実数を取り除きたがっています!
CONJUNCTIVE EXPRESSION
接続語の表現
SYNTAX
構文
conjunct = disjunct ("AND" conjunct / .empty);
結合した人はdisjunctと等しいです(“AND"結合した人/.empty)。
disjunct = negation ("OR" negation / .empty);
disjunctは否定と等しいです(「OR」否定/.empty)。
negation = "NOT" relation / relation;
否定は「NOT」関係/関係と等しいです。
relation =
関係=
'( conjunct ') /
'、(結合、'、)、/
sum (
合計、(
"<=" sum /
「<=」合計/
">=" sum /
「>=」合計/
'< sum /
'<合計/'
'> sum /
'>合計/'
'= sum /
'合計/と等しいです'
'" sum /
'「合計/」'
.empty);
.empty)、。
The conjunct construct is rigged in such a way that a conjunct which is not a sum need not have a value, and may be evaluated using jumps in the code. Reference to the conjunct is made only in places where a logical decision is called for (e.g. if and while statements).
結合している構造物は、合計でない結合した人が値を持つ必要はないような方法で装備されて、コードにジャンプを使用することで評価されるかもしれません。 論理的な決定が求められる場所だけで結合した人について言及される、(例えば、声明である、)
We hope that most compilers will be smart enough to skip unnecessary evaluations at run time. I.e a conjunct in which the left part is false or a disjunct with the left part true need not have the corresponding right part evaluated.
ほとんどのコンパイラがランタイムのときに不要な評価をサボることができるくらい賢くなることを願っています。 評価されて、左辺が誤っている結合した人か左辺が真のdisjunctが対応する権利を離れさせる必要はないI.e。
ARITHMETIC EXPRESSION
算術式
SYNTAX
構文
statement = conditional / unconditional;
声明は条件付きの/と無条件の状態で等しいです。
unconditional = loopst / cases / cibtrikst / uist / treest / block / null / exp;
無条件の=loopst/ケース/ cibtrikst / uist / treest /ブロック/ヌル/exp。
conditional = "IF" conjunct "THEN" unconditional (
「当時条件付きの=“IF"結合しているすること」の無条件である、(
"ELSE" conditional /
"ELSE"条件付きの/
.empty);
.empty)、。
block = "begin" exp $('; exp) "end";
ブロック=「始まってください」exp$、('; exp) 「終わり」'、。
An expressions may be a statement. In conditional statements the else part is optional while in expressions it is mandatory. This is a side effect of the way the left part of the syntax rules are ordered.
表現は声明であるかもしれません。 条件文では、表現では、それは義務的ですが、部分はほかの任意です。 これはシンタックス・ルールの左辺が命令される方法の副作用です。
SEMI-TREE MANIPULATION AND TESTING
準木の操作とテスト
SYNTAX
構文
treest = setpntr / insertpntr / deletepntr;
最もtreestな=setpntr/insertpntr/deletepntr。
setpntr = "set" "pointer" pntrname "to" pntrexp;
「セット」「ポインタ」setpntr=pntrname “to" pntrexp。
pntrexp = direction pntrexp / pntrname;
pntrexpは指示pntrexp / pntrnameと等しいです。
insertpntr = "insert" pntrexp "as"
insertpntrは「差し込み」pntrexp “as"と等しいです。
(("left" / "right") "brother") /
((「左」か「正しい」)の「兄弟」) /
(("first" / "last: ) "daughter") "of" pntrexp;
(「first」の/、「最終:、)、「娘」) “of" pntrexp、」、。
direction =
指示=
"up" /
"up"/
"down" /
"down"/
"forward" /
「フォワード」/
"backward: /
「後方に:、」 /
"head" /
「ヘッド」/
"tail";
「ついて行ってください」。
plantree = "replace" pntrname "with" pntrexp;
plantreeは「取り替え」pntrname “with" pntrexpと等しいです。
deletepntr = "delete: pntrname;
deletepntr=「以下を削除してください」 pntrname。
tree = '( tree1 ') ;
木=、'、(tree1、'、)、。
tree1 = nodename $nodename ;
tree1はnodename$nodenameと等しいです。
nodename = terminal / '( tree1 ');
nodenameが端末/と等しい、'、(tree1、'、)、。
terminal = treename / buffername / point ername;
端末はtreename / buffername /ポイントernameと等しいです。
treename = id;
treenameはイドと等しいです。
treedecl = "pointer" .id / "tree" .id;
treedeclは「ポインタ」.id/「木」.idと等しいです。
Extra parentheses in tree building results in linear subcategorization, just as in LISP.
ちょうどLISPのように直線的な下位範疇化における結果を築き上げる木の余分な括弧。
FLOW AND CONTROL
流れとコントロール
controlst = gost / subst / loopstr / casest;
最もcontrolst=gost/subst/loopstr/casest。
GO TO STATEMENTS
飛越し文
gost = "GO" "TO" (labelv / .id);
gostは「行ってください」“TO"(labelv/.id)と等しいです。
assignlabel = "ASSIGN" .id "TO" labelv;
assignlabelは「割り当て」.id “TO" labelvと等しいです。
SUBROUTINES
サブルーチン
subst = callst / returnst / cortnout;
substはcallst/returnst/cortnoutと等しいです。
callst = "CALL" procname (exp / .emptyu);
callstは「呼び出し」procnameと等しいです(exp/.emptyu)。
returnst = "RETURN" (exp / .empty);
returnstは「リターン」と等しいです(exp/.empty)。
cortnout = "STUFF" exp "IN" pipename;
「もの」exp「IN」cortnout=pipename。
cortnin = "FETCH" pipename;
cortninは「フェッチ」pipenameと等しいです。
FETCH is a builtin function whose value is computed by envoking the named co-routine.
FETCHは値が命名されたコルーチンをenvokingすることによって計算される作り付けの機能です。
LOOP STATEMENTS
ループ文
SYNTAX
構文
loopst = whilest / untilst / forst;
loopstは最もwhilestな/untilst/forstと等しいです。
whilest = "WHILE" conjunct "DO" statement;
「してください」という最もwhilestな=“WHILE"結合している声明。
untilst = "UNTIL" conjunct "DO" statement;
untilstは「してください」という“UNTIL"の結合している声明と等しいです。
forst = "FOR" integerv '- exp ("BY" exp / .empty) "TO" exp
'forstは“FOR" integervと等しいです'--exp(“BY" exp/.empty)“TO" exp
"DO" statements;
「してください」という声明。
The value of while and until statements is defined to be false and true (or 0 and non-zero) respectively.
そして、値、声明がそれぞれ誤っていて本当に(または、0と非ゼロ)なるように定義されるまで。
For statements evaluate their initial exp, by part, and to part once, at initialization time. The running index of for statements is not available for change within the loop, it may only be read. If, some compilers can take advantage of this (say put it in a register) all the better. The increment and the to bound will both be rounded to integers during the initialization.
繰り返し文は初期化時に一度部分と、部分にそれらの初期のexpを評価します。 繰り返し文の走行インデックスが輪の中で変化に利用可能でない、それは読まれるだけであるかもしれません。 いくつかのコンパイラがこれ(レジスタにそれを入れるように言う)をよりよく、利用できます。 そして、増分、バウンドするのは初期化の間、ともに整数に一周するでしょう。
CASE STATEMENTS
ケースステートメント
SYNTAX
構文
casest = ithcasest / condcasest;
最もcasestな=ithcasest / condcasest。
ithcasest = "ITHCASE" exp "OF" "BEGIN" statement $('; statement) "END";
最もithcasestに、="ITHCASE"exp “OF"が声明を「始まる」、$、('; 声明) 「終わり」'、。
condcasest = "CASE" exp "OF" "BEGIN" condcs $('; condcs) "OTHERWISE" statement "END";
= 最もcondcasestに、「ケース」exp “OF"はcondcs$を「始まります」。('; condcs) 「そうでなければ」という声明は「終わります'。
condcs = conjunct ': statement;
'condcsは結合した人と等しいです': 声明。
The value of a case statement is the value of the last case executed.
ケースステートメントの値は実行された最後のケースの値です。
EXTRA STATEMENTS
余分な声明
null = "NULL";
ヌルは「ヌル」と等しいです。
I/O STATEMENTS
入出力声明
iost = messagest / dspyst ;
iostはmessagest / dspystと等しいです。
MESSAGES
メッセージ
SYNTAX
構文
messagest = buildmes / demand;
最もmessagestな=buildmes/要求。
buildmest = startmes / appendmes / sendmes;
最もbuildmestな=startmes/appendmes/sendmes。
startmes = "start" "message";
startmes=は「メッセージ」を「始めます」。
appendmes = "append" "message" "byute" exp;
appendmes=は「メッセージ」"byute"expを「追加します」。
sendmes = "send" "message";
sendmes=は「メッセージ」を「送ります」。
demandmes = "demand" "Message";
demandmesは「要求」「メッセージ」と等しいです。
mesinfo =
mesinfo=
"get" "message" "byte"
「バイト」という「得る」「メッセージ」
"message1" "length" /
「message1"「長さ」/」
"message" empty: '?;
「メッセージ」空: '?;
mesdecl = "message" "bytes" "are" ,byn "bits" long" '..
'「mesdeclは「バイト」が「ある」という「メッセージ」と等しく、bynは長い「ビット」です」'。
DISPLAY BUFFERS
表示バッファ
SYNTAX
構文
dspyst = startbuffer / bufappend / estab;
dspystはstartbuffer/bufappend/estabと等しいです。
startbuffer - "start" "buffer";
startbuffer--「始め」「バッファ」。
bufappend = "append" bufstuff $('& bufstuff);
bufappendは「」 bufstuffドル('bufstuff)を追加してください'と等しいです。
bufstuff = :
bufstuff=:
"parameters" dspyparm $('. dspyparm) /
「パラメタ」が$('. dspyparm)/をdspyparmする、'
"character" exp /
「キャラクタ」exp/
"string"1 strilng /
「ストリング」1strilng/
"vector" ("from" exp ':exp / .empty) "to" exp '. exp /
'「ベクトル」、(“from" exp、': exp/.empty) “to" exp'、exp/
"position" (onoff / .empty) "beam" "to" exp '= exp/
「位置」(onoff/.empty)「ビーム」“to" expは'exp/と等しいです'。
curve" ;
「曲がってください」。
dspyparm F :
dspyparm F:
"intensity" "to" exp /
「強度」“to" exp/
"character" "width" "to" exp /
「キャラクタ」「幅」“to" exp/
"blink" onoff /
「明滅」onoff/
"italics" onff;
「イタリック」onff。
onoff = "on" / "off";
onoffは“on"/“off"と等しいです。
estab = "establish" buffername;
estabは「設立」buffernameと等しいです。
LOGICAL SCREEN
論理的なスクリーン
The screen is taken to be a square. The coordinates are normalized from -1 to +1 on both axes.
正方形になるようにスクリーンを取ります。 座標は両方の軸の上に-1〜+1まで正常にされます。
Associated with the screen is a position register, called PREG. The register is a triple <x.y.r> where x and y specify a point on the screen and r is a rotation in radians, counter clockwise, from the x-axis.
PREGは、スクリーンに関連づけられているのが、位置のレジスタであると呼びました。 レジスタは三重の<x.です。y. xとyがスクリーンのポイントを指定して、rがラジアンにおいて回転であるr>、横軸から時計回りで反対してください。
The intensity, called INTENSITY, is a real number in the range from 0 to 1. 0 is black, 1 is as light as your display can go, and numbers in between specify the relative log of the intensity difference.
INTENSITYと呼ばれる強度は0〜1までの範囲の実数です。 0は黒いです、そして、1はあなたの表示が行くことができるのと同じくらい軽いです、そして、間の数は強度差の相対的なログを指定します。
Character frame size.
キャラクターフレーム・サイズ。
Blink bit.
ビットを明滅させてください。
BUFFER BUILDING
緩衝建築物
The terminal nodes of semi-trees are either semi-tree names or display buffers. A display buffer is a series of logical entities, called bufstuff.
準木の端末の節は、準木の名か表示バッファのどちらかです。 bufstuffは、表示バッファが一連の論理的な実体であると呼びました。
When the buffer is initilized, it is empty. If no parameters are initially appended, those in effect at the end of the display of the last node in the semi-tree will be in effect for the display of this node.
バッファがinitilizedされるとき、それは空です。 初めはパラメタを全く追加しないと、準木での最後のノードの表示の終わりに有効なそれらはこのノードの表示に有効になるでしょう。
As the buffer is built, the logical entities are added to it. When it is established as a buffername, the buffer is closed, and further appends are prohibited. It is only a buffername has been established that it may be used in a tree building statement.
バッファが組立しているので、論理的な実体はそれに加えられます。 それがbuffernameと書き立てられるとき、バッファがさらに閉じられる、追加、禁止されています。 それが声明を造りながら木で使用されるかもしれないのによるbuffernameだけが設立されたということです。
LOGICAL INPUT DEVICES
論理的な入力装置
Wand
棒
Joy Stick
ジョイスティック
Keyboard
キーボード
Buttons
ボタン
Light Pens
ライトペン
Mice
マウス
AUDIO OUTPUT DEVICES
オーディオ出力装置
.end
.end
SAMPLE PROGRAMS
サンプルプログラム
Program to run display and keyboard as tty.
ttyとして表示とキーボードを動かすのはプログラムを作ってください。
to run NLS
NLSを走らせるために
input part
入力部分
display part
表示部分
DEMAND MESSAGE;
メッセージを要求してください。
While LENGTH " O DO
長さである間の「○ してください」
ITHCASE GETBYTE OF Begin
ITHCASE GETBYTE、始まり
ITHCASE GETBYTE OF %file area uipdate% BEGIN
ITHCASE GETBYTE OF%ファイル領域uipdate%BEGIN
%literal area%
%文字通りの領域%
%message area%
%は領域%を通信させます。
%name area%
%は領域を%と命名します。
%bug%
%は%を悩まします。
%sequence specs%
%は仕様%を配列します。
%filter specs%
%は仕様%をフィルターにかけます。
%format specs%
%は仕様%をフォーマットします。
%command feedback line%
%はフィードバック線%を命令します。
%filer area%
%、書類整理係領域%
%date time%
%は%と時間の日付を入れます。
%echo register%
%エコーは%を登録します。
BEGIN %DEL control%
BEGIN%DELは%を制御します。
DISTRIBUTION LIST
発送先リスト
Steve Carr Department of Computer Science University of Utah Salt Lake City, Utah 84112 Phone 801-322-7211 X8224
スティーブ・カー・コンピュータサイエンス学部ユタ大学ソルトレイクシティー、ユタ 84112は801-322-7211 X8224に電話をします。
Steve Crocker
スティーブ・クロッカー
Boelter Hall University of California Los Angeles, California Phone 213-825-4864
Boelterホールカリフォルニア大学ロサンゼルス校、カリフォルニア電話213-825-4864
Jeff Rulifson
ジェフRulifson
Stanford Research Institute 333 Ravenswood Menlo Park, California 94035 Phone 415-326-6200 X4116
スタンフォード研究所333レーヴンズウッド・メンローパーク、カリフォルニア 94035は415-326-6200 X4116に電話をします。
Ron Stoughton
ロンストートン
Computer Research Laboratory University of California Santa Barbara, California 93106 Phone 805-961-3221
カリフォルニア大学のサンタバーバラ、カリフォルニア 93106が805-961-3221に電話をするコンピュータ研究所
Mehmet Baray
メーメトBaray
Corey Hall University of California Berkeley, California 94720 Phone 415-843-2621
コーリー・ホールカリフォルニア大学バークレー、カリフォルニア 94720は415-843-2621に電話をします。
一覧
スポンサーリンク