Lecture 1.2.1 (Instruction Set Architectures-Levels of Programming Languages)
Lecture 1.2.1 (Instruction Set Architectures-Levels of Programming Languages)
ASSISTANT PROFESSOR
BE-CSE
BASIC TERMINOLOGIES
Software that has been written for an ISA can run on different implementations of
the same ISA. This has enabled binary compatibility between different generations
of computers to be easily achieved, and the development of computer families.
Both of these developments have helped to lower the cost of computers and to
increase their applicability. For these reasons, the ISA is one of the
most important abstractions in computing today.
LEVELS OF PROGRAMMING LANGUAGES
Level of Languages
1.Machine Language
● Language closer to the hardware itself is machine language.
● Programs written in machine language are highly efficient.
● It is in form of binary code (0 and 1) and that makes it difficult to memorize
different binary codes.
A symbolic address consists of one, two, or three, but not more than three
alphanumeric characters.
The first character must be a letter; the next two may be letters or numerals. The
symbol can be chosen arbitrarily by the programmer. A symbolic address in the
label field is terminated by a comma so that it will be recognized as a label by the
assembler.
3. High Level Language
High-level language is a programming language designed to simplify
computer programming. It is "high-level" since it is several steps removed from
the actual code run on a computer's processor.
High-level source code contains easy-to-read syntax that is later converted into a
low- level language, which can be recognized and run by a specific CPU.
High-level language" refers to the higher level of abstraction from machine
language. Rather than dealing with registers, memory addresses and call
stacks, high-level languages deal with variables, arrays, objects, complex
arithmetic or boolean expressions, subroutines and functions, loops, threads,
locks, and other abstract computer science concepts, with a focus on usability
over optimal program efficiency.
Unlike low-level assembly languages, high-level languages have few, if any,
language elements that translate directly into a machine's native opcodes. Other
features, such as string handling routines, object-oriented language features, and
file input/output, may also be present.
LANGUAGE PROCESSORS/TRANSLATORS
A translator takes a program written in source language as input and converts it into
a program in target language as output.
Types of Processors/Translators
●Compilers
●Interpreters
●Assemblers
Compilers: Compiler is a translator which is used to convert programs in
high-level language to low-level language.
Use of Compiler
Use of Interpreter
Assemblers: Assembler is a translator which is used to translate the assembly
language code into machine language code.
Use of Assembler
References
Reference Books:
●J.P. Hayes, “Computer Architecture and Organization”,
Third Edition.
●Mano, M., “Computer System Architecture”, Third
Edition, Prentice Hall.
●Stallings, W., “Computer Organization and Architecture”, Eighth Edition,
Pearson Education.
Text Books:
●Carpinelli J.D,” Computer systems organization &Architecture”, Fourth Edition,
Addison Wesley.
●Patterson and Hennessy, “Computer Architecture”, Fifth Edition Morgaon
Kauffman.
Reference Website
●https://thebittheories.com/levels-of-programming-languages-b6a38a68c0f2
●https://www.cs.toronto.edu/~gpenn/csc324/lecture2.pdf
●https://www.britannica.com/technology/computer-programming-language
Video References
●https://www.youtube.com/watch?v=RHvioCFOzZo
●https://www.youtube.com/watch?v=BQleAPh1Z3I