ALGOL 58

From Wikipedia, the free encyclopedia

Jump to: navigation, search

ALGOL 58, originally known as IAL, is one of the family of ALGOL computer programming languages.

  • IAL introduced the three-level concept of reference, publication and hardware language, and the concept of "word delimiters" having a separate representation from freely chosen identifiers (hence, no reserved words). ALGOL 60 kept this three-level concept.
  • The distinction between assignment (:=) and the equality relation (=) was introduced in IAL and kept in ALGOL 60.
  • Both IAL and ALGOL 60 allowed arrays with arbitrary lower and upper subscript bounds, and allowed subscript bounds to be defined by integer expressions.
  • Both IAL and ALGOL 60 allowed nesting of procedure declarations and the corresponding identifier scopes.
  • The IAL report described parameter substitution in much the same terms as the ALGOL 60 report, leaving open the possibility of call by name. It is unclear if this was realized at the time.
  • IAL allowed numeric statement labels, that ALGOL 60 kept.
  • The possibility of including non-ALGOL code within a program was already hinted at, in the context of parameters to procedures.
  • Both IAL and ALGOL 60 had a switch.
  • In-line functions of the form f(x) := x / 2; were proposed in IAL but dropped in ALGOL 60.
  • IAL procedure declarations provided separate declaration lists for input and output parameters, a procedure could return multiple values; this mechanism was replaced in ALGOL 60 with the value declaration.
  • Variable declarations in IAL could be placed anywhere in the program and not necessarily at the beginning of a procedure. In contrast, the declarations within an ALGOL 60 block should occur before all execution statements.
  • The for-statement had the form for i:=base(increment)limit, following conventions established in earlier automatic programming systems; ALGOL 60 replaced the parentheses with the word delimiters step and until, such that the previous statement instead would be i:=base step increment until limit.
  • The IAL if-statement did not have a then-clause or else-clause; it rather guarded the succeeding statement. IAL provided an if either-statement that cleanly allowed testing of multiple conditions. Both were replaced by ALGOL's if-then construct, with the introduction of the "dangling-else" ambiguity.
  • IAL provided macro-substitution with the do-statement; this was dropped in ALGOL 60.
  • IAL allowed to omit one or more array subscripts when passing arrays to procedures, and to provide any or all arguments to a procedure passed to another procedure.
  • IAL's binary boolean operators were all of the same precedence level. Exponents were indicated with paired up and down arrows, which removed any confusion about the correct interpretation of nested exponents; ALGOL 60 replaced the paired arrows with a single up-arrow whose function was equivalent to FORTRAN's **.
  • The IAL report did not explicitly specify which standard functions were to be provided, making a vague reference to the "standard functions of analysis." The ALGOL 60 report had a more explicit list of standard functions.
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.