Computer Science: A Very Short Introduction by Subrata Dasgupta

Computer Science: A Very Short Introduction by Subrata Dasgupta

Author:Subrata Dasgupta
Language: eng
Format: epub, pdf
ISBN: 9780198733461
Publisher: OUP Oxford
Published: 2016-01-14T05:00:00+00:00


Programming languages as abstract artefacts

It was mentioned earlier that a computation can be specified as programs at different abstraction levels that vary in ‘distance’ from the physical computers that can execute the programs. Correspondingly, programming languages can be conceived at different abstraction levels. A crude dichotomy separates high-level from low-level languages. The former enable programs to be written independent of all physical computers that would execute them, and the latter refers to languages designed with respect to specific families of computers or even more specifically to a particular computer.

Thus, high-level languages are ‘machine-independent’ and low-level ones are ‘machine-dependent’ with the caveat that the degree of independence or dependence may well vary. The lowest level languages are called assembly languages and they are so specific to particular (family of, or individual) physical computers that the assembly language programmer literally manipulates the features of the computers themselves.

There was a time in the history of computing when almost all programming was done using assembly languages. Such programs were still symbol structures (and to a very moderate extent abstract) but translators called ‘assemblers’ (themselves programs) would convert them into the target computers’ machine code. However, because of the tedium, difficulty, amount of human time required, and error-proneness of assembly language programming the focus shifted to the invention and design of increasingly higher level, machine-independent programming languages, and the task of translating programs in such languages into executable machine code for specific computers was delegated to compilers.

In this chapter hereafter, and in the remainder of this book, unless stated explicitly, the term ‘programming language’ will always refer to high-level languages.

Programming languages, in contrast to natural ones, are invented or designed. They are, thus, artefacts. They entail the use of notation as symbols. As we will see, a programming language is actually a set of symbol structures and, being independent of physical computers, are abstract in exactly the same sense that algorithms are abstract. We thus have the curious situation that while programs written in such languages are liminal, the languages of programming themselves are abstract.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.