0% found this document useful (0 votes)
2 views96 pages

Unit 1 PPL

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 96

Importance of Studying Programming Languages

Computers aren't very smart

Ask the computer to draw a picture


of bird…

Will it draw?
Importance of Studying Programming Languages

Computers are bad at understanding things


Importance of Studying Programming Languages

Computers cannot understand English


Functional View of a Computer

Output
CPU Devices
Input
Devices
Main Secondary
Memory Memory
Functional View of a Computer
▪ Humans interact with computers via Input and
E.g., Keyboard Output (IO) devices
and mouse E.g., Monitor

▪ Information from Input devices are processed by


Output
Input the CPU and may be shuffled off to the main or
secondary memory Devices
Devices

▪ When information need to be displayed, the CPU


sends them to one or more Output devices
• A program is just a sequence of instructions telling the computer what
to do
• Obviously, we need to provide these instructions in a language that
computers can understand
• We refer to this kind of a language as a programming language
• Python, Java, C and C++ are examples of programming languages
• Every structure in a programming language has an exact form (i.e.,
syntax) and a precise meaning (i.e., semantic)
Six reasons to Learn Programming Languages
Reason 1:

To improve your ability to develop effective algorithms


● The depth at which people can think is heavily influenced by the
expressive power of their language.
● It is difficult for people to conceptualize structures that they
cannot describe, verbally or in writing.
Reason 2:
To improve your use of your existing programming language
● Many professional programmers have a limited formal education
in computer science, limited to a small number of programming
languages.
● They are more likely to use languages with which they are most
comfortable than the most suitable one for a particular job.
Reason 3
● Computer science is consider as a young discipline and most
software technologies (design methodology, software
development, and programming languages) are not yet mature.
Therefore, they are still evolving.
● The understanding of programming language design and
implementation makes it easier to learn new languages.
Reason 4
● It is often necessary to learn about language implementation; it
can lead to a better understanding of why the language was
designed the way that it was.
● Fixing some bugs requires an understanding of implementation
issues.
Reason 4
● Some languages are better for some jobs than others.
○ (i) FORTRAN and APL for calculations, COBOL and RPG for
report generation, LISP and PROLOG for AI, etc.
● Improve your use of existing programming language
● By understanding how features are implemented, you can make
more efficient use of them.
Reason 5
● To improve your use of existing programming language
● By understanding how features are implemented, you can make
more efficient use of them.
● Examples:
● Creating arrays, strings, lists, records.
● Using recursions, object classes, etc.
Reason 6
● Designing a new language require prior knowledge of previous one
to make it effective, efficient and convenient to users.
● The previous knowledge as well as concepts are usual to design a
new language irrespective of their work domains.
History of Programming languages
● Development of Early Language
● Evolution of Software Architecture
● Application Domains
History of Programming languages
● 1951- 55: Experimental use of expression compilers.
● 1956- 60: FORTRAN, COBOL, LISP, Algol 60.
● 1961- 65: APL notation, Algol 60 (revised), SNOBOL, CPL.
● 1966- 70: APL, SNOBOL 4, FORTRAN 66, BASIC, SIMULA, Algol 68, Algol-W, BCPL.
● 1971- 75: Pascal, PL/1 (Standard), C, Scheme, Prolog.
● 1976- 80: Smalltalk, Ada, FORTRAN 77, ML, C++.
History of Programming languages
● 1981- 85: Smalltalk-80, Prolog, Ada 83.
● 1986- 90: SML, Haskell.
● 1991- 95: Ada 95, TCL, Perl.
● 1996- 2000: Java.
● 2000- 05: C#, Python, Ruby, Scala.
Development of
Early Language
Development of Early Language
● Numerically based languages
Computing mathematical expressions
FORTRAN, Algol, Pascal, PL/1, BASIC, C, C++
● Business languages
COBOL (Common Business Oriented Language)
English-like notation
Development of Early Language
● Artificial intelligence languages
Tree search; Rule-based paradigm
LISP (LISt Processing)
PROLOG (PROgramming in LOGic)
● System languages :C, C++
● Script languages: AWK, Perl, TCL/TK
● Web programming: HTML, XML, Java, Microsoft *.NET family
Evolution of Software Architecture
Evolution of Software Architecture
● Mainframe Era
○ Batch processing (batches of files)
○ Interactive processing (time sharing)
● Effects on language design
○ File I/O in batch processing
○ Error handling in batch processing
○ Time constraints in interactive processing
Evolution of Software Architecture
● Personal Computer
○ Interactive processing
○ Embedded system environments
Effects on language design
○ No need for time sharing
○ Good interactive graphics
○ Non-standard I/O devices for embedded systems
Evolution of Software Architecture
● Networking Era
○ Client-server model of computing
○ Server: a program that provides information
○ Client - a program that requests information
Effects on language design
○ Interaction between the client and server programs
○ Active web pages, Security issues, Performance
Application Domain
● Business Processing
● Scientific
● System
● Artificial Intelligence
● Publishing
● Process
Impact of Programming Paradigms
This Causes Impact on

● Way Programmers are Solving the Program


● Challenge to Describe Needs of the Stakeholders and Solution
Requirements
● Provided an Underlying Model to Verify and Validate the Program in a
Reliable Manner.
● Minimize the Design Errors
● Provides Variety of Techniques to manage Complexity.
● How to Design a Software
Influences in
Design of
Programming
Languages
Some influences on the development of Programming Languages
Some influences on the development of Programming Languages
Some influences on the development of Programming Languages
Role of Programming Languages
Good Language
Clarity, Simplicity And Unity
● A Programming language provides both a conceptual framework for
Algorithm planning and means of expressing them.
● It should provide a clear, simple and unified set of concepts that can be used as
primitives in developing algorithms.
● It should have
• It has minimum number of different concepts
• with Rules for their combination being
• simple and regular.
This attribute is called conceptual integrity.
Orthogonality
● It is one of the most important feature of PL orthogonality is the property that
means " Changing A does not change B".
● If I take Real world example of an orthogonal system Would be a radio, where
changing the station does not change the volume and vice versa.
● When the features of a language are orthogonal, language is easier to learn and
programs are easier to write because only few exceptions and special cases to
be remembered.
Naturalness for the application

● Language should provide appropriate data structures, operations, control


structures and proper natural syntax
Support for Abstraction

There is always found that a substantial gap remaining between the


abstract data structure and operations that characterize the solution to a
problem and their particular data structure and operations built into a
language.
Programming Environment

● An appropriate programming environment adds an extra utility and make


language to be implemented easily like
● The availability of- Reliable- Efficient - Well documentation Speeding up
creation and testing by-special Editors- testing packages
● Facility- Maintaining and Modifying- Multi Version of program software product.
Programming Environment
Ease of program verification:- Reusability
● The reusability of program written in a language is always a central concern. A
program is checked by various testing technique like
● Formal verification method Desk checking Input output test checking.
● We verify the program by many more techniques.
● A language that makes program verification difficult maybe far more
troublesome to use.
● Simplicity of semantic and syntactic structure is a primary aspect that tends to
simplify program verification.
Syntax and Semantics
● The syntax of programming language is what the program looks like.
● How statements declaration and other constructs are written
● The semantic of Pl is meaning is a meaning given to the various syntactic
constructors.
Role of Programming Languages
Programming Paradigms
● Why are there hundreds of programming languages in use today?
use mnemonics to represent machine instructions
○ Some programming languages are specifically designed for use in certain
ØEach statement in assembly language corresponds to one statement in
applications.
○ Different programming languages follow different approaches to solving
machine language.
programming problems
ØAssembly language
● A programming paradigm programs
is an approachhave
to solvingthe same problems.
programming advantages and
disadvantages
● A programmingas machine language
paradigm may programs.
consist of many programming languages.
● Common programming paradigms:
Compare○theImperative
following machine language and assembly language programs:
or Procedural Programming
○ Object-Oriented Programming
○ Functional Programming
○ Logic Programming
Programming Paradigms
use mnemonics to represent machine instructions
ØEach statement in assembly language corresponds to one statement in
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Imperative Languages
• Imperative programming consists of sets of detailed instructions that are given to
the computer to execute in a given order.
• It's called "imperative" because as programmers we dictate exactly what the
computer has to do, in a very specific way.
• Imperative programming focuses on describing how a program operates, step by
step.
Imperative Languages

Filter an array of numbers to only keep the elements bigger than


5.

The program to iterate through each element in the array, compare the
item value with 5, and if the item is bigger than 5, push it into an array.
Programming Paradigms- IMPERATIVE and DECLARATIVE
use mnemonics to represent machine instructions
● Imperative programming: telling the "machine”
ØEach statement
(computer) how toin
do assembly language
something, and as a result corresponds to one statement in
machine language.
what you want to happen will happen.

ØAssembly language programs have the same advantages and


disadvantages as machine language programs.
● Declarative programming: telling the
Compare the(computer)
"machine” followingwhat
machine language
you would like to and assembly language programs:
happen, and let the computer figure out how
to do it.
Programming Paradigms- IMPERATIVE and DECLARATIVE
Problem
use Statement
mnemonics to:-represent
Double all the numbersinstructions
machine in an array.

ØEach statement
Imperative in assembly language
style of programming: corresponds
Declarative to one statement in
style of programming:
machine
var numberslanguage.
= [1,2,3,4,5] var numbers = [1,2,3,4,5]
var doubled = []
ØAssembly language programs var have the same advantages
doubled = numbers.map(function(n) and
disadvantages as machine
for(var i = 0; i < numbers.length; i++) language
{ { programs.
var newNumber = numbers[i] * 2 return n * 2
Compare the following machine
doubled.push(newNumber) language
}) and assembly language programs:
}
console.write(doubled) //=> [2,4,6,8,10] console.log(doubled) //=> [2,4,6,8,10]
Applicative Languages
● Programming language is to look at the function that the program represents
rather than just the state changes as the program executes, statement by
statement.
● Focus on the desired result rather than at the available data.
● What is the function that must be applied to the initial machine state by
accessing the initial set of variables and combining them in specific ways to
get an answer?
● The languages which emphasize this view are called applicative or functional
languages.
Applicative Languages
● LISP and ML are two functional languages
Rule based Languages
● Execute by checking for the presence of a certain enabling condition and,
when present, executing an appropriate action.
● The most common rule-based language is Prolog, also called a logic
programming
Rule based Languages
Object Oriented Languages
● Complex data objects are built, then a limited set of functions are designed
to operate on those data.
● Complex objects are designed as extensions of simpler objects, inheriting
properties of the simpler object.
● The best of two of the other computational models.
○ By building concrete data objects, an object-oriented program gains
the efficiency of imperative languages.
○ By building classes of functions that use a restricted set of data
objects, we build the flexibility and reliability of the applicative model.
Generality of Computational Model
Programming Paradigms- PROCEDURAL/STRUCTURED
● mnemonics
use Procedural programming is a computer
to represent programming
machine language that organises our code into small
instructions
programs" that use and change our datas.
ØEach statement
● Structured programmingin assembly language
is a programming paradigm corresponds to one statement
recommending hierarchical division intoin
machine
blockslanguage.
of code with one entry point and one or more exit points.
● In structured programming we use three main structures :
ØAssembly
○ sequences language
(instruction _1; programs have
instruction _2;…; the
instruction _n same advantages and
disadvantages
○ choices (if, asif...else,
machine switch,language
case) programs.
○ iterations (while, repeat, for).
Compare the variables,
● Key words: following machine
types, language
procedures anddatas.
and abstract assembly language
Using: network programs:
systems, operating
systems, etc.
● Procedural/structured languages:
Fortran , Cobol , Pascal, c, ,c++ etc,
Programming Paradigms- PROCEDURAL/STRUCTURED
use mnemonics to represent machine instructions
ØEach statement in assembly language corresponds to one statement in
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Programming Paradigms-Object-oriented programming
● Object-oriented programming is a programming paradigm in which programs are defined using
objects - the state of the connecting elements (or fields) and behavior (or method).
use
● mnemonics to represent
Object-oriented computer programmachine
is expressedinstructions
as a set of such objects, which communicate with
each other in order to perform tasks.
ØEach statement in assembly language corresponds to one statement in
● Key words: classes and objects, inheritance, encapsulation, polymorphism.
machine
● Using:language.
www and stand-alone applications.
● Object-oriented
ØAssembly languages
language programs have the same advantages and
○ Simula,
disadvantages
○ Smalltalk,as machine language programs.
○ C++,
Compare the following machine language and assembly language programs:
○ C#,
○ Java, others.
Programming Paradigms- Object Oriented
use mnemonics to represent machine instructions
ØEach statement in assembly language corresponds to one statement in
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Programming Paradigms- Functional Programming
use mnemonics to represent machine instructions
ØEach statement in assembly language corresponds to one statement in
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Programming Paradigms- Functional Programming
use mnemonics to represent machine instructions
ØEach statement in assembly language corresponds to one statement in
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Programming Paradigms-Logical programming
● The paradigm of logic programming is a programming method in which the program is given as a
set of relations, and the relationship between these dependencies.
● Key words: facts, reports, queries.
● Using: theoretical, artificial intelligence.
● Logical languages:
use mnemonics
○ Gödel, to represent machine instructions
○ Fril,
ØEach statement in assembly language corresponds to one statement in
○ Prolog, others.
machine language.
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
Programming Paradigms- Logical programming

use mnemonics to represent machine


instructions
ØEach statement in assembly language
corresponds to one statement in machine
language.
ØAssembly language programs have the same
advantages and disadvantages as machine :
Programming Paradigms- Logical programming

use mnemonics to represent machine


instructions
ØEach statement in assembly language
corresponds to one statement in machine
language.
ØAssembly language programs have the same
advantages and disadvantages as machine :
Procedure Object Oriented Function Oriented Logic Oriented
C C++ ML PROLOG
COBOL Java LISP CURRY

FORTRAN Ruby DART FRIL

PASCAL Python SCHEME OZ

Java Script Ada LOGO ALMA-0

Smalltalk
SQL

PhP
Programming Environment

Programming Environment: “A Programming Environment is the


collection of tools used in the development of software.”
• In a general sense, a programming environment combines
hardware and software that allows a developer to build
applications.
• Developers typically work in integrated development environments
or IDEs. These connect users with all the features necessary to
write and test their code correctly. Different IDEs will offer other
capabilities and advantages.
Programming Environment
What is an IDE?
An Integrated Development Environment integrates common development tools in single
software environment.
An IDE normally consists of at least:-
• File system
• Text editor
• Linker
• Compiler
• Integrated tools
IDEs includes features/tools like:
Debugging
Syntax highlighting
Code completion
Language support
Code search
Programming Environment

Some of the examples of programming


environments or IDEs are-
1) Microsoft Visual Studio (VS Code)
2) NetBeans
3) Turbo C, C++
4) Code::Blocks
5) Dreamweaver
6) Arduino
In developing a
Language
architecture of s/w
influences the
design of language

Impact of
Machine
Architectures
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Computer Hardware
● A computer is an integrated set of algorithms and data structures capable of storing
and executing programs.
● A computer may be constructed as an actual physical device using wires, integrated
circuits, circuit boards, and the like, in which case it is termed an actual computer or
hardware computer.
● it may also be constructed via software by programs running on another computer,
in which case it is a software-simulated computer.
● A programming language is implemented by construction of a translator, which
translates programs in the language into machine language programs that can be
directly executed by some computer.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Computer Hardware
1. Data. A computer must provide various kinds of elementary data items and data structures to be
manipulated.
2. Primitive operations. A computer must provide a set of primitive operations useful for
manipulating the data.
3. Sequence control. A computer must provide mechanisms for controlling the sequence in which
the primitive operations are to be executed.
4. Data access. A computer must provide mechanisms for controlling the data supplied to each
execution of an operation.
5. Storage management. A computer must provide mechanisms to control the allocation of storage
for programs and data
6. Operating environment. A computer must provide mechanisms for communication with an
external environment containing programs and data to be processed.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Firmware of Computers
● Common alternative to the strict hardware realization of a computer is the
firmware computer simulated by a microprogram running on a special micro
programmable hardware computer.
● Microprogram simulation of a computer is sometimes termed emulation.
● We also refer to the resulting computer as a virtual computer because it is
simulated by the microprogram; without this microprogrammed simulation, the
machine would not exist.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators and Virtual Architectures

● Translator could be designed to translate programs in the high-level language


into equivalent programs in the machine language of the actual computer.
● Instead simulate, through programs running on another host computer, a
computer whose machine language is the high-level language.
● We construct with software running on the host computer (the high-level
language computer) that we might otherwise have constructed in hardware. This
is termed a software simulation (or software interpretation) of the high-level
language computer on the host computer.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators
● An assembler is a translator whose object language is also some variety of machine
language for an actual computer but whose source language, an assembly language,
represents for the most part a symbolic representation of the object machine code.
● A compiler is a translator whose source language is a high-level language and whose
object language is close to the machine language of an actual computer,
● A loader or link editor is a translator whose object language is actual machine
code and whose source language is almost identical.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators
● A preprocessor or a macroprocessor is a translator whose source language
is an extended form of some high-level language such as C++ or Java and
whose object language is the standard form of the same language.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Software Simulation
● The simulated computer accepts as input data a program in the high-level
language.
● The main simulator program performs an interpretation algorithm similar to that
of decoding and executing each statement of the input program in the appropriate
sequence and producing the specified output from the program.
● host computer creates a virtual machine simulating
● the high-level language.
● When the host computer is executing the high-level program, it is not possible to tell
whether the program is being executed directly by the hardware or is first
converted to the low-level machine language of the hardware computer.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators and Virtual Architectures
● Translation and simulation provide different advantages in a programming language
implementation.
● Some aspects of program structure are best translated into simpler forms before
execution; other aspects are best left in their original form and processed only as
needed during execution.
● The major disadvantage of translation is loss of information about the program.
● In Simulation By leaving statements in their original form until they need to be
executed, no space is needed to store multiple copies of long code sequences;
● the basic code need be stored only once in the simulation routine.
● However, the total cost of decoding must be paid each time the statement is to be
executed.
Impact of Machine Architectures - THE OPERATION OF A COMPUTER
Translators and Virtual Architectures
● The common division of languages
1. Compiled languages : translated into the machine language of the actual computer
being used before execution begins, eg. C, C++, FORTRAN, Pascal, and Ada are
2. Interpreted languages : In such a language implementation, the translator does not
produce machine code for the computer being used. Instead, the translator produces
some intermediate form of the program that is more easily executable than the
original program form yet that is different from machine code.
● Java and the WWW have changed some of these rules.
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES

1. Through a hardware realization, representing the data structures and algorithms


directly with physical devices.
2. Through a firmware realization, representing the data structures and algorithms by
microprogramming a suitable hardware computer
3. Through a virtual machine, representing the data structures and algorithm by programs
and data structures in some other programming language.
4. Through some combination of these techniques, representing various parts of the
computer directly in hardware, in microprograms, or by software simulation as
appropriate.
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Virtual Computers and Language Implementations
● The language is implemented on a different computer, the implementor tends to see
a slightly (or very) different virtual computer in the language definition.
● two different implementations of the same language may utilize a different set of
data structures and operations in the implementation,
● three factors lead to differences among implementations of
1. Differences in each implementor’s conception of the virtual computer
2. Differences in the facilities provided by the host computer on which the language
is to be implemented.
3. Differences in the choices made by each implementor as to how to simulate the
virtual computer elements
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Hierarchies of Virtual Machines
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Bindings: Names and Attributes
● Names are a fundamental abstraction in languages to denote entities
○ Meanings associated with these entities is captured via attributes associated with
the names
● Attributes differ depending on the entity:
○ location (for variables)
○ value (for constants)
○ formal parameter types (functions)
● Binding: Establishing an association between name and an attribute.
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Bindings: Names
● Names or Identifiers denote various language entities:
○ Constants
○ Variables
○ Procedures and
○ Functions Types, . . .
● Entities have attributes
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Bindings: Attributes
● Attributes are associated with names (to be more precise, with the entities they denote).
● Attributes describe the meaning or semantics of names (and entities).

● An attribute may be
○ static: can be determined at translation (compilation) time, or
○ dynamic: can be determined only at execution time.
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Binding and Binding Time -Importance of Binding Times

Link
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Binding Time -Importance of Binding Times
● Language design time: built-in features such as keywords
● Language implementation time: implementation dependent semantics such as bit-width of an
integer
● Program writing time: names chosen by programmer
● Compile time: bindings of high-level constructs to machine code
● Link time: final bindings of names to addresses
● Load time: Physical addresses (can change during run time)
● Run time: bindings of variables to values, includes many bindings which change during execution
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Binding and Binding Time -Classes of Binding Times
1. Execution time (run time)
a. On entry to a subprogram or block.
b. At arbitrary points during execution.
2. At arbitrary points during execution.
a. Bindings chosen by the programmer.
b. Bindings chosen by the translator.
3. Language implementation time.
4. Language definition time.
Impact of Machine Architectures - VIRTUAL COMPUTERS AND BINDING TIMES
Binding and Binding Time -Classes of Binding Times
● consider the simple assignment statement X=X+10
● Points to Think:
○ Set of types for Variable X.
○ Type of variable X.
○ Set of possible values for variable X.
○ Value of Variable X.
○ Representation of the constant 10.
○ Properties of the operator +.
Programming Languages
Machine languages and assembly languages are also called low-level languages
1. Machine languages.

2. Assembly languages.

3. High-level languages.
Programming Languages
Machine languages and assembly languages are also called low-level languages
● A Machine language program consists of a sequence of zeros and ones.
● Each kind of CPU has its own machine language.
● Advantages
○ Fast and efficient
○ Machine oriented
○ No translation required
● DisadvantageS
○ Not portable
○ Not programmer friendly
Assembly language programs
use
● mnemonics toinrepresent
Each statement machine
assembly language instructions
corresponds to one statement in machine language.
ØEach statement
● Assembly in programs
language assemblyhavelanguage corresponds
the same advantages to one statement
and disadvantages as machinein
language
machine programs.
language.
● Compare the following machine language and assembly language programs:
ØAssembly language programs have the same advantages and
disadvantages as machine language programs.
Compare the following machine language and assembly language programs:
High-Level Programming Languages
● A high-level language (HLL) has two primary components
use mnemonics to represent machine instructions
○ a set of built-in language primitives and grammatical rules
ØEach statement in assembly language corresponds to one statement in
○ a translator
● A HLL
machine language program consists of English-like statements that are governed by a strict
language.
syntax.
ØAssembly
● Advantages language programs have the same advantages and
disadvantages as machine
○ Portable or machinelanguage
independentprograms.
○ Programmer-friendly
Compare the following machine language and assembly language programs:
● Disadvantages
○ Not as efficient as low-level languages
○ Need to be translated
○ Examples : C, C++, Java, FORTRAN, Visual Basic, and Delphi.
Programming Paradigms-Functional programming
● Functional programming is a programming paradigm in which the functions are the core values ​
and the emphasis is on valuation (often recursive) function, and not to execute commands.
● Theoretical basis for functional programming was developed in the 19330s of the Twentieth century
by Alonzo Church's
use mnemonics lambda calculus,
to represent called lambda
machine calculus with types.
instructions
● Key words: functions, lambda calculus, parametric polymorphism.
ØEach
● Using:statement
theoretical, in in assembly language
telecommunications, corresponds to one statement in
in financial calculations.
● Functional
machine languages:
language.
○ Lisp,
ØAssembly
○ ML, language programs have the same advantages and
○ Haskell, as machine language programs.
disadvantages
○ H#,
Compare
○ Erlangthe following machine language and assembly language programs:
○ others.

You might also like