Академический Документы
Профессиональный Документы
Культура Документы
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
1/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
2/60
Machine Language
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Programming
Writing instructions that tells the computer what to do.
Processor can understand & execute machine instructions, which
are simply binary numbers
Lowest-level
But very tedious & error-prone for human programmers!
For computers & for processor designers, not for
programmers consumptions!
A machine language program
00001001
10101111
11000110
01011000
11000110
01011000
10101111
00001001
10101111
00001001
01011000
11000110
01011000
11000110
00001001
10101111
3/60
Assembly Language
BCS2223
Programming
Paradigms
Main Improvement
Instruction: Use symbolic name or mnemonic for each opcode
Chapter 01:
Introduction
lw
lw
sw
sw
$t0,
$t1,
$t0,
$t1,
0($2)
4($2)
0($2)
4($2)
4/60
Compiler
Translates high-level programming language into intermediate
or machine language
A high-level programming language program
Languages
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Natural vs Programming
Natural
Communicate among
humans
Write essays
Few write well
300,000 years old
Extremely complex
No formal theory is capable of
describing
Programming
Communicate with
literal-minded machine
Write programs
Few write well
60+ years old
Complex
Based on mathematical
formalisms
Summary
6/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
7/60
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Establish correctness
Why use anything besides machine code?
Readable, familiar notations
Machine independence (portability)
Availability of program libraries
Consistency checks (data types) during implementation
Dealing with scale
The art of programming is the art of organizing complexity.
Dijkstra, 1972
8/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
10/60
Paradigm
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Paradigm
An example that serves as pattern or model.
The American Heritage Dictionary of the English Language, Third Edition
A philosophical and theoretical framework of a scientific school or
discipline within which theories, laws, and generalizations and the
experiments performed in support of them are formulated;
A philosophical or theoretical framework of any kind
The Merriam-Websters Collegiate dictionary
http://www.merriam-webster.com/dictionary/paradigm
Summary
11/60
Programming Paradigm
And Related Concepts
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Programming Paradigm
The basic structuring of thought underlying the programming
activity
A pattern that serves as a school of thoughts for programming
of computers
Programming Style
The way we express ourselves in a computer program
Related to elegance or lack of elegance
Programming Technique
Related to an algorithmic idea for solving a particular class of
problems
12/60
Programming Paradigms
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
XML,
Sexpression
+ procedure
Observable
nondeterminism? Yes No
Firstorder
functional
programming
+ cell (state)
Imperative
programming
Pascal, C
+ closure
Imperative
search
programming
Functional
programming
+ unification
(equality)
Scheme, ML
+ search
Relational & logic
programming
+ byneed
synchron.
Prolog, SQL
Lazy
embeddings
functional
+ solver
programming
Constraint (logic)
Haskell
programming
+ thread
Concurrent
constraint
programming
ADT
functional
programming
+ cell
ADT
imperative
programming
Scheme, ML
Haskell, ML, E
CLU, OCaml, Oz
+ thread
+ single assign.
+ nondeterministic
+ port
choice
(channel)
Monotonic
dataflow
programming
Declarative
concurrent
programming
Nonmonotonic
dataflow
programming
Concurrent logic
programming
Multiagent
dataflow
programming
Pipes, MapReduce
+ thread
+ single assignment
+ byneed
synchronization
Lazy concurrent
constraint
programming
Lazy
dataflow
programming
Lazy
declarative
concurrent
programming
Logic and
constraints
Functional
LIFE, AKL
+ byneed synchronization
(unforgeable constant)
+ continuation
Continuation
programming
Deterministic
logic programming
+ search
+ name
FrTime, SL
+ instantaneous computation
Strong synchronous
programming
Esterel, Lustre, Signal
Nondet. state
Dataflow and
message passing
+ port
(channel)
+ cell
(state)
Eventloop
programming
E in one vat
+ thread
Multiagent
programming
Messagepassing
concurrent
programming
Erlang, AKL
+ local cell
Active object
programming
Objectcapability
programming
+ closure
Sequential
objectoriented
programming
Stateful
functional
programming
Java, OCaml
+ thread
Concurrent
objectoriented
programming
Sharedstate
concurrent
programming
Smalltalk, Oz,
Java, Alice
+ log
CSP, Occam,
E, Oz, Alice,
publish/subscribe,
tuple space (Linda)
SQL embeddings
Message passing
Shared state
Software
transactional
memory (STM)
Named state
Less declarative
Explanations
See "Concepts, Techniques, and Models of Computer Programming".
The chart classifies programming paradigms according to their kernel
languages (the small core language in which all the paradigms
abstractions can be defined). Kernel languages are ordered according to
the creative extension principle: a new concept is added when it cannot be
encoded with only local transformations. Two languages that implement
the same paradigm can nevertheless have very different "flavors" for the
programmer, because they make different choices about what
programming techniques and styles to facilitate.
When a language is mentioned under a paradigm, it means that part of
the language is intended (by its designers) to support the paradigm
without interference from other paradigms. It does not mean that there
is a perfect fit between the language and the paradigm. It is not enough
that libraries have been written in the language to support the paradigm.
The languages kernel language should support the paradigm. When
there is a family of related languages, usually only one member of the
family is mentioned to avoid clutter. The absence of a language does
not imply any kind of value judgment.
State is the ability to remember information, or more precisely, to store a
sequence of values in time. Its expressive power is strongly influenced by
the paradigm that contains it. We distinguish four levels of expressiveness,
which differ in whether the state is unnamed or named, deterministic or
nondeterministic, and sequential or concurrent. The least expressive is
functional programming (threaded state, e.g., DCGs and monads:
unnamed, deterministic, and sequential). Adding concurrency gives
declarative concurrent programming (e.g., synchrocells: unnamed,
deterministic, and concurrent). Adding nondeterministic choice gives
concurrent logic programming (which uses stream mergers: unnamed,
nondeterministic, and concurrent). Adding ports or cells, respectively,
gives message passing or shared state (both are named, nondeterministic,
and concurrent). Nondeterminism is important for realworld interaction
(e.g., client/server). Named state is important for modularity.
Axes orthogonal to this chart are typing, aspects, and domainspecificity.
Typing is not completely orthogonal: it has some effect on expressiveness.
Aspects should be completely orthogonal, since they are part of a
programs specification. A domainspecific language should be definable
in any paradigm (except when the domain needs a particular concept).
Metaprogramming is another way to increase the expressiveness of a
language. The term covers many different approaches, from higherorder
programming, syntactic extensibility (e.g., macros), to higherorder
programming combined with syntactic support (e.g., metaobject
protocols and generics), to fullfledged tinkering with the kernel language
(introspection and reflection). Syntactic extensibility and kernel language
tinkering in particular are orthogonal to this chart. Some languages, such
as Scheme, are flexible enough to implement many paradigms in almost
native fashion. This flexibility is not shown in the chart.
13/60
Programming paradigms
Main: Imperative, Object-Oriented, Functional, Logical
Others: Declarative, Procedural, Visual, Symbolic, Meta,
Inductive, Probabilistic, . . .
Evolving!
Some paradigms are subsets of others.
Functional Declarative
Procedural Imperative
Multi-paradigm languages support several programming
paradigms
Challenging to combine concepts from different paradigms in
a harmonious way.
E.g.,
Python: imperative, object-oriented, functional, reflective
Oz: imperative, object-oriented, functional, logic, constraint,
distributed, concurrent
14/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
15/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
20
SUM = 0
DO 20 K=1,N
SUM = SUM + 2*K
CONTINUE
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
16/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
17/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
class Tool {
int n;
public:
Tool(int n) { this->n = n; }
int sum2();
};
int Tool::sum2() {
int sum = 0;
for (int i=1; i<=n; i++)
sum += 2*i;
return sum;
}
Tool tool(4); tool.sum2();
// Evaluates to 20
18/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
(defun sum2(n)
(loop for i from 1 to n sum (* 2 i))
)
(sum2 4) ; Evaluate to 20
19/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
20/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
sum2(0, 0).
sum2(N, S) :N > 0,
N1 is N-1,
sum(N1, S1),
S is S1+2*N.
?- sum2(4, N).
N = 20 ?
yes
Summary
21/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
22/60
Implementation Methods
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Compilation
Pure Interpretation
Hybrid Implementation
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
23/60
Implementation Methods
Compilation
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Execution is fast
Especially the target programs have been optimized for
performance.
E.g.,
COBOL, Ada, C, C++.
Android Runtime (ART) (available in Android versions 4.4
KitKat and later): Compiles Dalvik bytecode (which is
compiled from Java) into system-dependent machine
language.
24/60
Implementation Methods
Compilation (Cont.)
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
25/60
Implementation Methods
Pure Interpretation
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Pure Interpretation
Programs are interpreted by an interpreter
(one statement at a time)
No translation
Execution is slower
Can be 10 to 100 times slower than
compiled programs
Brief History of
Programming
Languages
Summary
Pure
interpretation.
26/60
Implementation Methods
Hybrid Implementation
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Hybrid Implementation
Compromise between compilation and pure interpretation
Combines some advantages and drawbacks of both
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
27/60
Implementation Methods
Hybrid Implementation (Cont.)
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
28/60
Implementation Methods
Hybrid Implementation (Cont.)
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
E.g.,
Java (modern compilers). Including Dalvik VM (available in
Android versions 4.4 KitKat and earlier).
Microsoft .NET languages.
Summary
29/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
30/60
Why History?
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
31/60
Early History
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
ez
zn
Bn n! ,
|z | < 2
n=0
32/60
Brief History of
Programming
Languages
Summary
33/60
http://www.digibarn.com/collections/posters/tongues/.
34/60
Analogy by Prithvi Raj & diagram by Carl Cheo. Get full version from
Summary
http://www.digibarn.com/collections/posters/tongues/.
Lord of the Rings characters to programming languages are included in the following
slides... (Credits go to J. R. R. Tolkien & Prithvi Raj & Carl Cheo)
35/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Machine Code:
Only machine code in the beginning (ENIAC, 1946)
Right combination of 1s and 0s to perform some computation
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
36/60
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
37/60
ALGOL
First Step Toward Sophistication
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
BASIC
Beginning of Timesharing
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
10
20
30
40
50
60
70
80
SIMULA 67
Beginning of Data Abstraction
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Begin
Class Glyph;
Virtual: Procedure print Is Procedure print;
Begin
End;
Glyph Class Char (c);
Character c;
Begin
Procedure print;
OutChar(c);
End;
(...omitted...)
End;
40/60
Pascal
Simplicity by Design
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
PROGRAM Test;
{* Calculate Area of Circle *}
VAR
radius: REAL;
FUNCTION CircleArea(r : REAL): REAL;
BEGIN
CircleArea := 3.1416 * r * r;
END;
BEGIN
WRITE(Enter radius: );
READLN(radius);
WRITE(Area of circle with radius , radius:3:1, : );
area := CircleArea(radius);
WRITELN(area:5:2);
END.
41/60
Prolog
Programming Based on Logic
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
eats(fred, oranges).
eats(tony, apples).
eats(john, apples).
?- eats(fred, oranges).
yes
?- eats(Who, apples).
Who = tony ? ;
Who = john ? ;
no
Prolog was chosen to use in The Fifth Generation Computer Project (FGCS).
42/60
C
Portable Systems Language
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Smalltalk
Object-Oriented Programming
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
"This is a comment."
"Syntax is rather minimalist. Only six keywords are reserved in Smalltalk!"
exampleWithNumber: x
| y |
true & false not & (nil isNil) ifFalse: [self halt].
y := self size + super size.
#($a #a "a" 1 1.0)
do: [ :each |
Transcript show: (each class name);
show: ].
x < y
44/60
Ada
Largest Design Effort in History
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
wikimedia.org/wiki/File:
Ada_Lovelace_portrait.jpg).
Public Domain.
45/60
Ada (Cont.)
Largest Design Effort in History
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Popularity suffered
DoD no longer requires its use
Widespread acceptance of C++ for OOP
Most serious criticism: too large and too complex
(...omitted...)
package body CharStak is
Maximum_Size : constant := 25;
Stack_List : STRING(1..Maximum_Size);
Top_Of_Stack : INTEGER := 0;
function Is_Empty return BOOLEAN is
begin
return Top_Of_Stack = 0;
end Is_Empty;
(...omitted...)
46/60
C++
Combining Imperative and Object-Oriented Features
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
47/60
Java
Imperative-Based Object-Oriented Language
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Portable; Cross-platform
Java Virtual Machine concept
JIT compilers
Very popular
Client-server web applications
Most Android applications are written in
Java-like language (Why Java-like?)
48/60
Scripting Languages
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
49/60
sh (for shell)
First of scripting languages
Collection of commands that were interpreted
as calls to system subprograms
Perl, 1987, Larry Wall
Currently widely used as a UNIX system
administration tool
JavaScript, 1995, Brendan Eich
Very popular as client-side HTML-embedded
scripting language
Only language that the most popular browsers
share support for
50/60
51/60
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
52/60
Objective-C
Combining Imperative and Object-Oriented
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
@implementation Process
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
# import "Process.h"
53/60
C]
Flagship .NET Language
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
using System;
Language
Implementation
Methods
class Example
{
public int Number { get; set; }
}
Brief History of
Programming
Languages
Summary
class Program
{
static void Main()
{
Example example = new Example();
example.Number = 168;
Console.WriteLine(example.Number);
}
}
54/60
Go
by Google Inc.
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Example of Go program
Language
Implementation
Methods
package main
import "fmt"
Brief History of
Programming
Languages
Summary
func main() {
nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println("sum:", sum)
}
55/60
Swift
Objective-C without the C Apple Inc.
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
Miscellaneous
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
\documentclass[a4paper]{article}
\begin{document}
\section{Hello!}
% This makes a section title
Hello, \textbf{World}!
\end{document}
57/60
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
The TIOBE index (a programming language popularity index) graph from Jun-2002 to
Sep-2015. Available from
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
58/60
Table of Contents
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Programming Paradigms
Summary
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
59/60
Summary
BCS2223
Programming
Paradigms
Chapter 01:
Introduction
Levels of
Programming
Languages
Why
Programming
Languages?
Programming
Paradigms
Language
Implementation
Methods
Brief History of
Programming
Languages
Summary
60/60