SAM76
Encyclopedia
SAM76 is a macro programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 used from the late 1970s to the present 2007 initially ran on CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

.

The SAM76 language is a list and string processor designed for interactive and user-directed applications, including artificial intelligence programming, and permits high portability from machine to machine. The language shares certain features in common with LISP
Lisp
A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...

, Forth, and shell programming languages
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...

 of the UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 operating system.
Claude A. R. Kagan, the language's developer, sought to combine within a single interpretive processor, the characteristics of two different string and general-purpose macro generators and the provisions to embed multiple infix operator mathematical systems.

SAM76 language was designed to:
  • be very pure syntactically and semantically;
  • require a minimum of user keyboarding to achieve powerful results;
  • fit in a very small computer system;
  • permit editing, testing, and executing modules interactively;
  • not prevent the user from doing strange things with the syntax of the language yielding, however, predictable results.


The language was based around the idea of programming with macros. A user will define a macro (a code word that can be defined by the user to invoke a specific set of instructions to perform a routine within the program) to execute a set of instructions, usually in either machine or assembly language, and use the macro in the program. In this way, a user need only define a routine once and then when that particular operation, or string is required, the user can substitute is with the macro name.

Since then the language has been rewritten in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 and compiles on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, and similar operating systems. The source code is available online and still compiles and runs as of 2006.

Characteristics of the SAM76 language

The SAM76 language follows a well defined syntax which is easy to learn and to read. It relies heavily, however, on a system of symbols to replace the pseudo English words of BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....

 and Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

.

The SAM76 interpreter also provides for a highly reactive and interactive language that can almost converse with the user from task to task. Consequently, the language has the capability of performing complex operations in program control, text editing and manipulation, gaming, simulation, and mathematics.

Because it has features similar to LISP, Forth and other list processors, SAM76 also has the capability of functioning as a query language, providing powerful human machine interaction that uses keyboard data from an interaction to modify and shape future responses. The language is also capable of growing by extension. Because, like LISP and Logo
Logo (programming language)
Logo is a multi-paradigm computer programming language used in education. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. It was originally conceived and written as functional programming language, and drove a mechanical turtle as an output...

, there is almost no difference between procedures and data structures, procedures can be treated as data and be acted upon by other procedures, even procedures defined by different users. The new procedures that are mapped or created behave as if they were language primitives or inherent functions of the language. Like Logo, this means that new users can create their own separate vocabularies which can be saved and executed, adding to the language vocabulary and providing for individual customization.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK