请输入您要查询的百科知识:

 

词条 DG/L
释义

  1. Comparison with Algol 60

     Algol 60 features not supported in DG/L   Extensions   String Operations  Input and Output  Other Extensions 

  2. References

{{refimprove|date=October 2010}}

DG/L was a programming language developed by Data General Corp for the Nova, Eclipse and Eclipse/MV families of minicomputers in the 1970s and early 1980s.

There were actually two separate versions:

  • "Old" Algol, which ran on and generated code for the Nova series of 16 bit computers. The compiler only did a little optimization. It was only available on the RDOS family of operating systems.
  • DG/L, which was developed by extensively modifying the Fortran 5 optimizing compiler. This compiler ran only on the Eclipse and Eclipse/MV family of computers but generated optimized code for the Nova, Eclipse and Eclipse/MV (Eagle) family. It was available on RDOS, AOS and AOS/VS.

The language itself was an extended version of Algol 60. It supported Integers, Single and Double precision floating point and complex numbers, and both fixed and arbitrary precision strings. It also supported full arbitrary precision BCD arithmetic on strings. It had a large number of convenient program flow features, but having been designed in the mid 70s, lacked user defined data structures.

DG/L had a substantial runtime library for its day, and was used for systems programming both within and outside of Data General.

Originally called Algol/5, the product renamed DG/L shortly before the first commercial release in 1978. Officially, the name is meaningless but it was apparently supposed to imply "Data General Language". After the first commercial release, targeting 16 bit Eclipse and Nova, several subsequent updates and major versions were released, approximately one a year.

Comparison with Algol 60

Appendix A of Data General's 1982 revision of its DG/L Language Reference Manual, 093-00229-01 describes DG/L as based on the ALGOL 60 programming language, but gives "data types, operations and statements that ALGOL 60 lacks". Specific differences are:

Algol 60 features not supported in DG/L

Algol 60 Feature As described in Algol 60 Report[1] paragraph DG/ notes
Call by name para. 4.7.3.2 DG/L allows procedure parameters as type PROCEDURE, allowing procedures to be passed by name to other procedures.
Nested quotation marks in literals 2.6.1 and 2.4.1
No limit on length of identifiers DG/L identifier names need to be unique within the first 32 characters
Two division operators 3.3.4.2 DG/L uses "/" for both real and integer division; an integer divided by another integer implies integer division (e.g. 1/4 is 0) unless the compiler's global /R switch is used
Notation of 10 2.5.1 DG/L uses E (or D for double precision) for "scientific" notation to show powers of ten
A program consisting only of a 4.1.1
Non-ASCII characters ⋀,⋁,¬,⊃,≡,≤,≥,≠ as Boolean operators 3.4.6.1 DG/L allows instead: AND, OR, NOT, IMP, EQV, <= (or =<),>= (or =>), and <> (or ><) as well as XOR
Including non-Algol code within Algol procedures 4.7.8 Apart from the FORTRAN 5 math library, documentation for external procedures assumes only other DG/L procedures will be linked in.

Extensions

Some of the extensions to the Algol 60 standard introduced in DG/L or carried over from Data General's previous Algol implementation of 1971:

String Operations

  • SUBSTR - substring
  • INDEX - position of a substring
  • LENGTH - length of a string
  • SETCURRENT - sets the current length of a string, e.g. setcurrent(str,length(str)-1);
  • Concatentation operator: "!!"
  • String arithmetic (e.g. "123.45" + "0.01" )
  • Type conversion (Boolean, Integer, Real, Pointer, Bit)
  • Octal numbers and some special symbols enclosed in brackets to represent ASCII characters

Input and Output

  • Fully formatted output, unformatted input, and output for all supported data types
  • Full interface to Data General's RDOS, AOS and AOS/VS system calls
  • Cache memory management (with virtual memory option).
  • Interface to CLRE and INFOS® II databases

Other Extensions

  • Conditional compilation of sections of code, using /letter-digit-string /
  • end-of-line comments using the % character and / comment /
  • expanded do, for, and if syntax (e.g. WHILE DO UNTIL )
  • Types: BIT, BYTE, 16-bit and 32-bit integers, 32-bit and 64-bit reals and arbitrary precision arithmetic,
  • Literals, e.g. LITERAL C (299792.458)
  • Global data
  • Error trapping
  • External procedures and data
  • Cluster declaration... very similar to Pascal units (allows a cluster of procedures and data in a separate compiled source).
  • Pointer -> symbol and BASED variables of all types
  • Exclusive-OR operator (XOR)
  • Multitasking

References

1. ^{{cite journal|last1=Naur|first1=Peter|title=Revised Report on the Algorithmic Language ALGOL 60|journal=Communications of the ACM|date=Jan 1963|volume=6|pages=1–17|doi=10.1145/366193.366201}}
  • DG/L Compiler Reference Manual, Data General Corp, 1978
  • DG/L Runtime Reference Manual, Data General Corp, 1978
{{DEFAULTSORT:DG L}}

3 : Systems programming languages|Procedural programming languages|Programming languages created in 1978

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/12 11:21:54