SQURL(ID:6252/)


Systems programming language



Related languages
BASIC => SQURL   Influence
Pascal => SQURL   Influence
PL/I => SQURL   Influence
SQURL => SQURL   Influence

References:
  • Jones, Douglas McLean "Introduction to SQURL" pp69-76 view details Abstract: This paper introduces SQURL, a new programming language designed to fulfill a need for a simple, flexible alternative to languages currently available for micro-computers. SQURL is a structured language designed for general purpose applications and intended for implementation on almost any micro-computer. A compiler does exist. DOI Extract: INTRODUCTION
    INTRODUCTION
    SQURL is a structured programming language designed for general
    purpose applications. SQURL was conceived as a language suitable for
    scientific or business programming on smaller computers, while retaining some of the more useful features of popular languages such as FORTRAN, PASCAL and BASIC. While no language can pretend to accommodate all types of programming problems with equal facility, it was felt that many languages designed for micro-computers were either too specialized or too complicated for easy implementation. SQURL therefore uses simple structures and language constructs to provide a powerful and easily comprehensible language of a general nature. Extract: DESIGN OBJECTIVES
    2. DESIGN OBJECTIVES
    The main design objectives of SQURL were simplicity and power. The language must be semantically simple so as to speed compilation. Reserved words are employed, and there are distinct meanings for each keyword or operator. As an illustration, PASCAL's END statement can be used to terminate a BEGIN, CASE or RECORD statement. This "overloading" of a single keyword complicates the compiler's design and makes program structure difficult to see. SQURL uses BEGIN-END, UNTIL-ENDUNTIL, IF-ENDIF, LOOP-ENDLOOP, WHILE-ENDWHILE and CASE-ENDCASE pairs to overcome this "overloading" Likewise, with the exception of the equal sign, parenthesis and asterisk, all special characters have unambiguous meanings. Appendix A contains a list of the character set along with the functions of special characters.

    In SQURL, all variables must be declare, variable names can be as long as the input line. This promotes self-documenting names and reduces the chances of errors in programming due to assumed data types. All SQURL statements are free form, and are line-oriented (one statement per line, although lines may be continued with a semi-colon). Any text after a dollar-sign or semi-colon is treated as commentary. Here are some examples of commented and continued SQURL source statements
        Y = M*X + B    $ this is a comment
        WRITE OUTPUT,  ; this line is continued and commented
        FORMAT,        ; lines may be continued indefinitely
        X,Y


          in SIGPLAN Notices 16(02) Feb 1981 view details
  • Spector, David "Ambiguities and insecurities in Modula-2" pp43-51 view details Extract: Introduction
    Introduction
    While it is not yet clear whether Ada, BLISS, Mary/2, Modula-2, Mesa, C, CLU, Edison, Concurrent Euclid, Icon, Newton, PLAIN, PLUS, Praxis, Smalltalk, SQURL, Y, or some other language is "best" for systems programming, each language represents an advance towards the goal of supporting an understandable and efficient organization of the many details and relationships inherent in systems programming.
    Unfortunately, no one language has yet achieved the delicate balance between simplicity and power that would distinguish it as ideal, but it appears that Modula-2 comes quite close. Modula-2 represents a step forward in language design, both because it incorporates existing features instead of inventing its own, and because of its evident concern for simplicity.
    Modula-2 offers the following valuable language features:
    Simplicity.
    Few primitive datatypes are defined, few control constructs are supported (there is no "go to"), and input-output operations are not provided as part of the language (they can be provided via extensions written in Modula-2). This simplicity allows for easier standardization and better portability than can be achieved with most other languages.
    Modules
    A module is a named collection of variables and procedures, similar to an Ada package. It controls the interfacing and encapsulation of the conceptual parts making up large software systems. Modules provide a more flexible solution to the problem of partitioning the name space of a large program than does the more familiar hierarchical nesting of procedures. They are so valuable they are even being force-fitted onto existing languages.
    Separate Compilation.
    Modules may be compiled separately, providing good management for large programsr and definition modules allow for specifying interfaces without giving implementation details.
    Flexible Datatypes.
    Strong datatypes are enforced, but this can be relaxed when necessary in systems programming to just declaring a parameter to be a word, an address, or an array of words.
    Machine Access.
    Access to specific memory addresses and other characteristics of the underlying machine is supported.
    Tasking.
    Flexible and efficient tasking is provided by coroutine management routines.
          in SIGPLAN Notices 17(08) August 1982 view details