Programming language
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds
of output. Programming languages generally consist of instructions for a computer. Programming languages can be used to
create programs that implement specific algorithms.
Low Level Language (Machine Language) called mnemonics. But computer cannot understand
mnemonics, so we use a translator called Assembler to
Low Level language (Machine Language) is the only
translate mnemonics into binary language
language which can be understood by the computer. Binary
Language is an example of low level language. The binary Advantages:
language contains only two symbols 1 & 0. An instruction in
1. Writing instructions in middle level language is
machine language generally tells the computer four things:
easier than writing instructions in low level
1. Where to find one or two numbers or simple language.
pieces of data in the main computer memory 2. Middle level language is more readable compared
(Random Access Memory, or RAM) to low level language.
2. A simple operation to perform, such as adding the 3. Easy to understand, find errors and modify.
two numbers together,
3. Where in the main memory to put the result of Disadvantages:
this simple operation, and
4. Where to find the next instruction to perform. 1. Middle level language is specific to a particular
machine architecture that means it is machine
Advantages: dependent.
2. Middle level language needs to be translated into
1. A computer can easily understand the low level
low level language.
language.
3. Middle level language executes slower compared
2. Low level language instructions are executed
to low level language.
directly without any translation.
3. Low level language instructions require very less High Level Language
time for their execution.
High level language is a computer language which can be
Disadvantages: understood by the users. High level language is very similar
to the human languages and has a set of grammar rules
1. Low level language instructions are very difficult to
that are used to make instructions more easily. Every high
use and understand.
level language has a set of predefined words known as
2. Low level language instructions are machine
Keywords and a set of rules known as Syntax to create
dependent, that means a program written for a
instructions. We use Compiler or interpreter to convert
particular machine does not executes on other
high level language to low level language. Languages like
machine.
COBOL, FORTRAN, BASIC, C, C++, JAVA etc., are the
3. In low level language, there is more chance for
examples of high level languages.
errors and it is very difficult to find errors, debug
and modify. Advantages:
Middle Level Language (Assembly Language) 1. Writing instructions in high level language is easier.
2. High level language is more readable and
Middle level language (Assembly language) is a computer
understandable.
language in which the instructions are created using
symbols such as letters, digits and special characters. In
assembly language, we use predefined words
3. The programs created using high level language Cross Reference Utility (CRef)
runs on different machines with little change or no
These allow the programmer to generate a table that lists
change.
all symbols, labels, names, modules etc. Each occurrence is
4. Easy to understand, create programs, find errors
listed, and generally the source program is given line
and modify.
numbers to facilitate this process. The Cref table is useful in
Disadvantages: debugging, as the programmer can ascertain in which
modules a particular variable is referenced.
1. High level language needs to be translated to low
level language. Disassembler
2. High level language executes slower compared to
Disassemblers convert machine code instructions into
middle and low level languages.
mnemonic opcodes and operands, facilitating debugging at
Assembler the machine code level. The more sophisticated
disassemblers provide for
An assembler is a program that converts assembly
language into machine code. generation of symbols and labels
cross reference tools
The features provided by an assembler are,
disassembly of memory or disk files
1. Allows the programmer to use mnemonics when
output of disassembly to disk file
writing source code programs.
relocation information
2. Variables are represented by symbolic names, not
as memory locations Debuggers and Monitors
3. Symbolic code is easier to read and follow
4. Error checking is provided A monitor is a small program that allows machine code
5. Changes can be quickly and easily incorporated access. A monitor provides,
with a re-assembly
6. Programming aids are included for relocation and • manipulation of memory
expression evaluation. The assembler does not • manipulation of processor registers
normally generate executable code. An assembler • simple trace, single step, go commands
produces an object code file that must be further • breakpoints
processed (linked) in order to generate a file that • maybe a dis-assembler and inline assembler
can be executed directly. • disk/tape i/o
Debuggers provide much the same facilities as monitors,
Interpreter but generally provide a wider range of features,
Interpreter is a computer program that directly executes, • provision for HLL source debugging
i.e. performs, instructions written in • split screens, windowing
a programming or scripting language, without requiring • reference by symbols, module names and labels
them previously to have been compiled into a machine • radix changing
language program. • dynamic tracing of hardware interrupts
Compiler • Operating System calls and stack tracing
A compiler is computer software that transforms computer Cross Assembler
code written in one programming language (the source Cross assemblers allow a programmer to develop machine
language) into another programming language (the target code programs on one computer system for another
language). Compilers are a type of translator that supports system (target). In this way, a programmer can develop a
digital devices, primarily computers. machine code program for a Macintosh computer system
Linker using an IBM-PC. The cross-assembler running on the PC
generates the machine code instructions necessary for the
A linker or link editor is a computer utility program that Macintosh.
takes one or more object files generated by a compiler and
combines them into a single executable file, library file, or
another 'object' file.
Locator
Program locators convert the output of the linker (the
executable file) into an absolute load format file. This type
of file will eventually reside in specific memory locations,
and is used to embed software into EPROM chips.