SlideShare ist ein Scribd-Unternehmen logo
1 von 140
Programming Languages
Categories
Classification Of Programming
Languages
Concepts Of Programming
Languages
@Lili_PLS
By: Professor Lili Saghafi
proflilisaghafi@gmail.com
What is Programming Language?
• A programming language is a notation designed to
connect instructions to a machine or a computer.
• Programming languages are mainly used to control the
performance of a machine or to express algorithms.
• At present, thousand programming languages have been
implemented.
• In the computer field, many languages need to be stated
in an imperative form, while other programming
languages utilize declarative form.
• The program can be divided into two forms such as
syntax and semantics.
• With thousands of incredibly diverse
programming languages loose in the
world, classifying them is a good use of
our time.
Programming Language
Different languages have different
purposes, so it makes sense to talk about
different kinds, or types, of languages.
Some types are:
• Machine languages, that are interpreted
directly in hardware
• Assembly languages, that are thin
wrappers over a corresponding machine
language
Programming Language
• High-level languages, that are anything
machine-independent
• System languages, that are designed for
writing low-level tasks, like memory and
process management
• Scripting languages, that are generally
extremely high-level and powerful
• Domain-specific languages, that are
used in highly special-purpose areas only
Programming Language
• Visual languages, that are non-text based
• Esoteric languages, that are not really intended to be
used, but are very interesting, funny, or educational in
some way
• These types are not mutually exclusive:
– Perl is both high-level and scripting;
– C is considered both high-level and system.
• Other types people have identified:
– Toy, Educational, Very High-Level, Compiled, Interpreted, Free-
Form, Curly Brace, Applicative, Von Neumann, Expression-
Oriented, Persistent, Concurrent, Glue, Intermediate, Quantum,
Hybrid. See Wikipedia’s category page on programming
language classification.
Emphasize
• Low level , The lowest-level programming
paradigms like Machine language ,
Assembly
• High Level , Third generation languages
and after
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Application Development
• To develop applications, a language is needed
which is complete and powerful but very safe.
• The complexity of large application mandates a
compile time safe language.
• It should also be fairly high level and object
oriented. The only languages which I believe
comes close to this today are Eiffel and Java.
• There is currently no outstanding candidate
language for this category.
System Languages
• System programming languages differ
from application programming languages in
that they are more concerned with managing a
computer system rather than solving general
problems in health care, game playing, or
finance.
• In a system langauge, the programmer, not the
runtime system, is generally responsible for:
– Memory management
– Process management
– Data transfer
– Caches
– Device drivers
– Directly interfacing with the operating system
Programming Paradigms
Programming Paradigms
• Programming paradigms are a way to
classify programming languages based on their
features.
• Languages can be classified into multiple paradigms.
1-Some paradigms are concerned mainly with implications for
the execution model of the language, such as allowing side
effects, or whether the sequence of operations is defined by the
execution model.
2-Other paradigms are concerned mainly with the way that code
is organized, such as grouping a code into units along with the
state that is modified by the code.
3-Yet others are concerned mainly with the style of syntax and
grammar.
Programming Paradigms
• Programming paradigms are a way to
classify programming languages based
on their features.
• Languages can be classified into
multiple paradigms.
• Just as software engineering (as a process) is
defined by differing methodologies, so
the programming languages (as models of
computation) are defined by
differing paradigms.
Programming Paradigms
• Some languages are designed to support one
paradigm (smalltalk supports object-oriented
programming, haskell supports functional
programming)
• Other programming languages support multiple
paradigms (such as object
pascal, C++, java, javascript, C#, scala, visual
basic, common
lisp, scheme, perl, PHP, python, ruby, wolfram
language, oz, and F#).
Programming Paradigms
• For example, programs written in c++,
object pascal or php can be
purely procedural, purely object-oriented,
or can contain elements of both or other
paradigms.
• Software designers and programmers
decide how to use those paradigm
elements.
Programming Paradigm
Common programming paradigms include :
• Imperative in which the programmer instructs the
machine how to change its state,
1. Procedural which groups instructions into
procedures,
2. Object-oriented which groups instructions together
with the part of the state they operate on,
• Declarative in which the programmer merely declares
properties of the desired result, but not how to
compute it ( what not how)
1. Functional in which the desired result is declared as
the value of a series of function applications,
2. Logic in which the desired result is declared as the
answer to a question about a system of facts and
rules,
3. Mathematical in which the desired result is declared
as the solution of an optimization problem
Programming Paradigm
1-Imperative Paradigm
Imperative paradigm have two main features:
• They state the order in which operations occur, with
constructs that explicitly control that order, and they
allow side effects, in which state can be modified at one
point in time, within one unit of code, and then later read
at a different point in time inside a different unit of code.
• The communication between the units of code is not
explicit.
• Meanwhile, in object-oriented programming, code is
organized into objects that contain state that is only
modified by the code that is part of the object.
• Most object-oriented languages are also imperative
languages.
2-Literate programming, as a
form of imperative
• Literate programming, as a form of imperative
programming, structures programs as a human-centered
web, as in a hypertext essay: documentation is integral
to the program, and the program is structured following
the logic of prose exposition, rather than compiler
convenience.
• The literate programming paradigm, as conceived by
Knuth, represents a move away from writing computer
programs in the manner and order imposed by the
computer, and instead enables programmers to develop
programs in the order demanded by the logic and flow of
their thoughts.
• Literate programs are written as an uninterrupted
exposition of logic in an ordinary human language, much
like the text of an essay, in which macros are included to
hide abstractions and traditional source code.
Imperative Programming Languages
Imperative programming languages may be multi-paradigm
and appear in other classifications.
Here is a list of programming languages that follow
the imperative paradigm:
Central features are variables, assignment statements, and iteration
– Include languages that support object-oriented programming
– Include scripting languages
– Include the visual languages
– Examples: C, Java, Perl, JavaScript, Visual BASIC .NET, C++
Perl Language
• Perl Language, is a file management language for UNIX.
• it is more popular for its common gateway interface
programming (CGI).
• It is a term for programs that web servers can perform to
allow additional capabilities of web pages.
• Pearl language is a method for searching text and it
is used for useful server functions and other databases,
and it is very easy to pick up the fundamentals if you
have any experience in any language.
• As a CGi language, web hosting services select Perl
language over C++ language.
• Because, the web hosts can review Perl script files.
Since they are text files, when C++ is compiled.
Low-level
• For the purpose of operating systems and other
low level code we need a language that
operates fast and just above the machine level.
• Of course there will always be occasion to slip
into assembly but that is by its nature machine
specific and so not considered here.
• Both C and C++ can be used for this.
• They provide the low level power needed while
giving a reasonable level of safety and
abstraction.
C Language
• The C language is a basic programming
language and it is a very popular language,
particularly used in game programming,
• Because C language includes the additional
packing of the C++, Every programmer uses this
language because it makes programs faster .
• However the value of this language gives the
reusability of C++ to get the slight increase in
performance with C language.
Imperative programming Languages
Java Language
• The Java language is a multi platform language that’s
particularly helpful in networking.
• Of course, mostly this language is used on the web with
Java applets.
• However, this language is used to design cross platform
programs, Since it similar to C++ in structure and syntax.
• For C++ programmers, Java language is very easy to
learn and it offers some advantages provided by object
oriented programming.
• Like reusability and it can be difficult to write efficient
code in Java.
• But, nowadays the speed of the Java language has
increased and 1.5 version offers some good features for
easy program making.
3-Declarative Paradigm
• languages that fit the declarative paradigm do
not state the order in which to execute
operations.
• Instead, they supply a number of operations that
are available in the system, along with the
conditions under which each is allowed to
execute.
• The implementation of the language's execution
model tracks which operations are free to
execute and chooses the order on its own.
Declarative Paradigm
• Independent of the imperative branch, declarative
programming paradigms were developed.
• In these languages, the computer is told what the
problem is, not how to solve the problem – the
program is structured as a set of properties to find
in the expected result, not as a procedure to
follow.
• Given a database or a set of rules, the
computer tries to find a solution matching all
the desired properties.
• An archetype of a declarative language is
the fourth generation language SQL, and the
family of functional languages and logic
programming.
4-Symbolic programming Paradigm
• Symbolic programming is a paradigm that
describes programs able to manipulate formulas
and program components as data.
• Programs can thus effectively modify
themselves, and appear to "learn", making
them suited for applications such as artificial
intelligence, expert systems, natural-language
processing and computer games.
• Languages that support this paradigm
include Lisp and Prolog.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
• There are not only 4 types of programming
language paradigm .
• There are endless types of programming
language, you can view all the different
types here.
• The main types of programming
languages are:
Types Of Programming
Languages
1-Machine code
• The lowest-level programming paradigms
are machine code, which directly represents
the instructions (the contents of program
memory) as a sequence of numbers,
and assembly language where the machine
instructions are represented by mnemonics
and memory addresses can be given symbolic
labels.
• These are sometimes called first- and second-
generation languages.
Machine code
• In the 1960s, assembly languages were
developed to support library COPY and quite
sophisticated conditional macro generation and
preprocessing abilities, CALL to (subroutines),
external variables and common sections
(globals), enabling significant code re-use and
isolation from hardware specifics via use of
logical operators such as
READ/WRITE/GET/PUT.
• Assembly was, and still is, used for time critical
systems and often in embedded systems as it
gives the most direct control of what the
machine does.
2-Assembly Language
• An assembly language is an encoding of
machine code into something more
readable.
• It assigns human-readable labels (or
names) to storage locations, jump targets,
and subroutine starting addresses, but
doesn’t really go too far beyond that.
Here’s the function from above on the Intel
64 architecture using the GAS assembly
language:
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
And here’s the same function,
written for the SPARC:
The main types of HIGH LEVEL
programming languages are:
1. Procedural Programming Language.
2. Functional Programming Language.
3. Object-oriented Programming
Language.
4. Scripting Programming Language.
5. Logic Programming Language.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
1-Imperative Paradigm
Procedural Programming
Paradigm
Procedural Programming
Language
• The procedural programming language is used
to execute a sequence of statements which
lead to a result.
• Typically, this type of programming language
uses multiple variables, heavy loops and
other elements, which separates them from
functional programming languages.
• Functions of procedural language may control
variables, other than function’s value returns.
• For example, printing out information.
Procedural Programming
Language
• Procedural programming languages are based
on the concept of the unit and scope (the data
viewing range) of an executable code statement.
• A procedural program is composed of one or
more units or modules, either user coded or
provided in a code library; each module is
composed of one or more procedures, also
called a function, routine, subroutine, or method,
depending on the language.
• Examples of procedural languages include:
Procedural Languages
Third-generation Languages
• COmmon Business Oriented Language (COBOL) – uses
terms like file, move and copy.
• FORmula TRANslation (FORTRAN) –
using mathematical language terminology, it was
developed mainly for scientific and engineering
problems.
• ALGOrithmic Language (ALGOL) – focused on being an
appropriate language to define algorithms, while using
mathematical language terminology, targeting scientific
and engineering problems, just like FORTRAN.
• Programming Language One (PL/I) – a hybrid
commercial-scientific general purpose language
supporting pointers.
Procedural Languages
Third-generation Languages
• Beginners All purpose Symbolic Instruction Code
(BASIC) – it was developed to enable more people to
write programs.
• C – a general-purpose programming language, initially
developed by Dennis Ritchie between 1969 and 1973
at AT&T Bell Labs.
• All these languages follow the procedural paradigm.
• That is, they describe, step by step, exactly the
procedure that should, according to the particular
programmer at least, be followed to solve a specific
problem.
• The efficacy and efficiency of any such solution are both
therefore entirely subjective and highly dependent on
that programmer's experience, inventiveness, and ability.
Pascal Language
• Pascal language is mostly a teaching language
and few industries uses this language to write
the programs.
• This language tends to use keywords instead of
symbols and braces in C language.
• So this language is very easy for beginners to
understand than a programming language like
C, C++.
• Borland is a compiler software company,
which is using Delphi programming language for
industrial strength.
• Delphi is an object oriented language of Pascal,
and presently Borland compilers only use it.
(Visual Pascal)
Fortran Language
• Fortran language is a number crunching
language and still it is used by scientists.
• This language allows different sizes of
variables up to the memory limit in the machine.
• This language is suitable for engineers, who
have to calculate values with high precision.
• Program in Fortran is inflexible and sometimes it
makes difficult to read.
The previous example looks like this in Fortran 77
(note how the code begins in column 7 or beyond):
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
3-Declarative Paradigm
Functional Programming
paradigm
Functional Programming
Language
• Functional programming language typically uses stored
data, frequently avoiding loops in favor of recursive
functions.
• The functional programing’s primary focus is on the return
values of functions, and side effects and different
suggests that storing state are powerfully discouraged.
• For example, in an exceedingly pure useful language, if a
function is termed, it’s expected that the function not modify
or perform any o/p.
• It may, however, build algorithmic calls and alter the
parameters of these calls.
• Functional languages are usually easier and build it easier
to figure on abstract issues, however, they’ll even be
“further from the machine” therein their programming model
makes it difficult to know precisely, but the code is decoded
into machine language (which are often problematic for
system programming).
Functional programming languages
• Functional programming languages define
programs and subroutines as
mathematical functions and treat them as
first-class.
• Many so-called functional languages are
"impure", containing imperative features.
• Many functional languages are tied to
mathematical calculation tools.
Functional programming languages
• Functional programming is a subset of
declarative programming.
• Programs written using this paradigm
use functions, blocks of code intended to
behave like mathematical functions.
• Functional languages discourage changes
in the value of variables
through assignment, making a great deal
of use of recursion instead.
Recursion
• Recursion in comput
er science is a
method of solving a
problem where the
solution depends on
solutions to smaller
instances of the
same problem
Recursion
• Most computer programming languages support
recursion by allowing a function to call itself
from within its own code.
• Some functional programming languages do not
define any looping constructs but rely solely on
recursion to repeatedly call code.
• It is proved in computability theory that these
recursive-only languages are Turing complete;
this means that they are as powerful (they
can be used to solve the same problems)
• as imperative languages based on control
structures such as while and for.
Recursion
• Repeatedly calling a function from within itself
may cause the call stack to have a size equal to
the sum of the input sizes of all involved calls.
• for problems that can be solved easily by
iteration, recursion is generally less efficient
• for large problems, it is fundamental to use
optimization techniques such as tail
call optimization
Turing complete
• This means that this system is able to recognize
or decide other data-manipulation rule sets.
• Turing completeness is used as a way to
express the power of such a data-manipulation
rule set.
• Virtually all programming languages today are
Turing complete.
• The concept is named after English
mathematician and computer scientist Alan
Turing.
Call Stack
• Call stack is a stack data structure that stores
information about the active subroutines of a computer
program.
• This kind of stack is also known as an execution
stack, program stack, control stack, run-time stack,
or machine stack, and is often shortened to just "the
stack".
• Although maintenance of the call stack is important for
the proper functioning of most software, the details are
normally hidden and automatic in high-level
programming languages.
• Many computer instruction sets provide special
instructions for manipulating stacks.
Tail Call
• A tail call is a subroutine call performed as the
final action of a procedure.
• If a tail call might lead to the same subroutine
being called again later in the call chain, the
subroutine is said to be tail-recursive, which is
a special case of recursion.
• Tail recursion (or tail-end recursion) is
particularly useful, and often easy to handle in
implementations.
• Tail calls can be implemented without adding a
new stack frame to the call stack.
Functional languages include:
• Pure, Haskell
– Haskell Is A Statically Typed, Purely
Functional Programming Language With Type
Inference And Lazy Evaluation Haskell Is Based On
The Semantics, But Not The Syntax, Of
The Miranda Programming Language, Which Served
To Focus The Efforts Of The Initial Haskell Working
Group.The Last Stable Release Was Made In July
2010 With The Next Standard Planned For 2020.
– Haskell Is Used In Academia And Industry.
– As Of September 2019, Haskell Was The 23rd Most
Popular Programming Language In Terms Of Google
Searches For Tutorials And Made Up Less Than 1%
Of Active Users On The Github Source Code
Repository
• Impure, C++ , LISP, PHP, Pearl, Python ,R, Java , Ruby
Semantics
• Semantics describes the processes a computer
follows when executing a program in that
specific language.
• This can be shown by describing the relationship
between the input and output of a program, or
an explanation of how the program will be
executed on a certain platform, hence creating
a model of computation.
• Formal semantics, for instance, helps to write
compilers, better understand what a program is
doing, and to prove, e.g., that the following if
statement
Functional Programming Languages
• Main means of making computations is by
applying functions to given parameters
Examples: LISP, Scheme, ML, F#
Pure Functional
• Certain tasks can best be done working in a purely function
environment.
• And these languages while not as widely used today are in
many ways so distinct from others that it is important to keep
there legacy alive in the hopes that they may positively
influence more common languages.
• The only real example of this today is Haskell since
languages like ML are not purely functional.
• There is currently no outstanding candidate language for this
category.
Good to know
• When programming computers or systems with
many processors,
• in process-oriented programming, programs
are treated as sets of concurrent processes that
act on a logical shared data structures.
• pure functional programming disallows use
of side-effects,
• while structured programming disallows use of
the go to statement.
Good to know
• Programming paradigms can also be
compared with programming
models which allow invoking an execution
model by using only an API.
• Programming models can also be
classified into paradigms, based on
features of the execution model.
Good to know
• For parallel computing, using a programming
model instead of a language is common.
• The reason is that details of the parallel
hardware leak into the abstractions used to
program the hardware.
• This causes the programmer to have to map
patterns in the algorithm onto patterns in the
execution model (which have been inserted due
to leakage of hardware into the abstraction).
• As a consequence, no one parallel programming
language maps well to all computation
problems.
Good to know
• It is thus more convenient to use a base
sequential language and insert API calls to
parallel execution models, via a programming
model.
• Such parallel programming models can be
classified according to abstractions that reflect
the hardware, such as shared memory,
distributed memory with message passing,
notions of place visible in the code, and so forth.
• These can be considered flavors of
programming paradigm that apply to only
parallel languages and programming models.
1-Imperative Paradigm
Parallel computing
• Parallel computing is a type of computation in which
many calculations or the execution of processes are
carried out simultaneously.
• Large problems can often be divided into smaller ones,
which can then be solved at the same time.
• There are several different forms of parallel
computing: bit-level, instruction-level, data, and task
parallelism.
• Parallelism has long been employed in high-performance
computing, but it's gaining broader interest due to the
physical constraints preventing frequency scaling.
• As power consumption (and consequently heat
generation) by computers has become a concern in
recent years,
• parallel computing has become the dominant paradigm
in computer architecture, mainly in the form of multi-core
processors.
Functional languages
• Functional languages are usually easier
and build it easier to figure on abstract
issues, however, they’ll even be “further
from the machine” therein their
programming model makes it difficult to
know precisely, but the code is decoded
into machine language (which are often
problematic for system programming).
Functional languages
LISP Language, is mostly used in computer science
research and it stores all data in lists such as arrays.
• The syntax of list is very simple and easy to make for
developers to implement structures.
Scheme Language
• The scheme language is an alternate of LISP language,
and it has a simpler syntax and features.
• Any project under the scheme language will result in the
re implementation of most of the LISP language.
• But, this is very popular introductory language in the
computer science department of MIT’s.
• This language easily solves the problems instead of
worrying about syntaxes of programming language.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
1-imperative Paradigm
Object-oriented Programming
Paradigm
Object-oriented Programming
Language
• This programming language views the
world as a group of objects that have
internal data and external accessing parts
of that data.
• The aim of this programming language is
to think about the fault by separating it into
a collection of objects, that offer services
which can be used to solve a specific
problem.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Object-oriented Programming
Language
• One of the main principle of object oriented
programming language is encapsulation that
everything an object will need must be inside
of the object.
• This language also emphasizes reusability
through inheritance and the capacity to spread
current implementations without having to
change a great deal of code by using
polymorphism.
• In object-oriented programming, programs are
treated as a set of interacting objects.
Object-oriented Programming
Language
• Class-based Object-oriented programming
languages support objects defined by their
class.
• Class definitions include member data.
• Message passing is a key concept in
Object-oriented languages.
• Polymorphic functions parameterized by
the class of some of their arguments are
typically called methods.
Object-oriented Programming
Language
• In languages with single dispatch, classes
typically also include method
definitions.
• In languages with multiple dispatch,
methods are defined by generic
functions.
• There are exceptions where single
dispatch methods are generic
functions (e.g. Bigloo's object system).
Object-oriented Programming
Language
• Following the widespread use of
procedural languages, object-oriented
programming (OOP) languages were
created, such
as Simula, Smalltalk, C++, C#, Eiffel, PHP,
and Java.
• In these languages, data and methods to
manipulate it are kept as one unit called
an object.
Object-oriented Programming
Language
• With perfect encapsulation, one of the
distinguishing features of OOP, the only
way that another object or user would be
able to access the data is via the
object's methods.
• The inner workings of an object may be
changed without affecting any code
that uses the object.
Object-oriented Programming
Language
• There is still some controversy raised
by Alexander Stepanov, Richard Stallman and
other programmers, concerning the efficacy of
the OOP paradigm versus the procedural
paradigm.
• The need for every object to have associative
methods leads some skeptics to associate OOP
with software bloat; an attempt to resolve this
dilemma came through polymorphism.
Polymorphism example in Javaclass OverloadedObject
{
void overloadedMethod (int a)
{ System.out.println("This method is called when the parameter is an integer. a = " +
a);
}
void overloadedMethod (int a, int b)
{ System.out.println("This method is called when there are two parameters, and they
are both integers. a = " + a + ", b = " + b);
}
void overloadedMethod (double a)
{ System.out.println("This method is called when there is one parameter, and it is a
double-precision number. a = " + a);
}
}
class DemonstrateOverloading
{ public static void main (String args [])
{
OverloadedObject myObj = new OverloadedObject();
myObj.overloadedMethod(1);
myObj.overloadedMethod(2, 3);
myObj.overloadedMethod(4);
}
}
Object-oriented Programming
Language
• Because object-oriented programming is
considered a paradigm, not a language,
it is possible to create even an object-
oriented assembler language.
• High Level Assembly (HLA) is an example
of this that fully supports advanced data
types and object-oriented assembly
language programming – despite its
early origins.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Good to know
• Thus, differing programming paradigms can be
seen rather like motivational memes of their
advocates, rather than necessarily representing
progress from one level to the next
• Precise comparisons of the efficacy of
competing paradigms are frequently made more
difficult because of new and differing
terminology applied to similar entities and
processes together with numerous
implementation distinctions across languages.
C++ Language
• The C++ language has an object oriented
structure which is used in large projects.
• Programmers can collaborate one program into
different parts or even one individual work on
each part of the program.
• The structure of object oriented also permit code
to be reused many times.
• This language is an efficient language.
• But, many programmers will disagree
A Recap on OOP
• Encapsulation that everything an object will
need must be inside of the object.
• Inheritance and the capacity to spread current
implementations without having to change a
great deal of code by using polymorphism.
• Polymorphic functions parameterized by the
class of some of their arguments, are typically
called methods.
• With perfect encapsulation, one of the
distinguishing features of oop, the only way that
another object or user would be able to access
the data is via the object's methods.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Paradigm
Common programming paradigms include :
• Imperative in which the programmer instructs the
machine how to change its state,
1. Procedural which groups instructions into
procedures,
2. Object-oriented which groups instructions together
with the part of the state they operate on,
• Declarative in which the programmer merely declares
properties of the desired result, but not how to
compute it ( what not how)
1. Functional in which the desired result is declared as
the value of a series of function applications,
2. Logic in which the desired result is declared as the
answer to a question about a system of facts and
rules,
3. Mathematical in which the desired result is declared
as the solution of an optimization problem
Scripting Programming
paradigm
Markup/programming hybrid
Programming Language
• Markup languages extended to
support some programming
• Examples: JSTL, XSLT
Scripting Programming
Language
• These programming languages are often
procedural and may comprise object-oriented
language elements, but they fall into their own
category as they are normally not full-fledged
programming languages with support for
development of large systems.
• For example, they may not have compile-time
type checking.
• Usually, these languages require tiny syntax to
get started.
Scripting Languages
• Scripting languages are used for wiring
together systems and applications at a
very high level.
• They are almost always extremely
expressive (they do a lot with very little
code) and usually dynamic (meaning the
compiler does very little, while the run-
time system does almost everything).
Scripting Languages
• The most basic need of for scripting languages
is one which is simple to use because it will be
used by those with a minimum of programming
knowledge or in situations where cranking out
code which does the job is all the matters.
• An example of where this language might be
used by people with more of a programming
background is in web scripting.
• Examples of languages that might fall into this
category are PHP, JavaScript, Perl, and Python.
PHP Language
– is used to design web pages and sometimes it is also
used as scripting language.
– This language is designed to develop a rapid website,
and as a result comprises features which make it
easy generate HTTP headers and link to databases.
– As a scripting language, it includes a set of
components permit the programmer to easily get up
to speed.
– However, it has more sophisticated object oriented
features.
Scripting Languages
• VB could also be considered in this family but it
is too frequently used for application
development today.
• There is currently no outstanding candidate
language for this category.
• When one is chosen I believe it should bare
resemblance to the Application development
language but with more bells and whistles to let
one crank things out and make it easier.
Programmer's scripting
• Real programmers also often have a need
for scripting capabilities.
• However, they need a language which is
simple and complete.
• It must never stand in there way as is all to
often the case with standard scripting
languages.
• It must be able to easily integrate into
other languages.
Better Scheme
• Better Scheme is an excellent language for use
in Programmer's Scripting.
• It is simple, complete, powerful and concise.
• In addition many programmers are exposed to
Scheme or Lisp during their education and so
are already familiar with it.
• One thing which will most likely be needed is a
good extension to Better Scheme which
provides solid support for object oriented
programming because Better Scheme scripts
will frequently need to interact with objects
created in other languages.
Complete Core
• This language may never be used for real programming
but I still think it would be important to have in mind.
• It would be a core language which the application,
scripting and pure functional languages could build on
and modify.
• It would have everything truly necessary and little more.
• One might think that the lambda calculus would be a
minimal example of this.
• However, it makes no provision for mutability which is
clearly a key concept to many languages.
Complete Core
• In addition the lambda calculus has no
concept of types, another important
feature of modern languages.
• The are no examples of a complete core
language today.
• There is currently no outstanding
candidate language for this category.
3-Declarative Paradigm
Logic Programming paradigm
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Logic Programming Language
• These types of languages let programmers
make declarative statements and then allow
the machine to reason about the
consequences of those statements.
• In a sense, this language doesn’t tell the
computer how to do something, but employing
restrictions on what it must consider doing.
• To call these groups ” types of language ” is
really a bit confusing.
• It’s easy to program in an object-oriented style in
C language.
Logic Programming Language
• In truth, most of the languages include
ideas and features from various domains,
which only helps to increase the
usefulness of these types of languages.
• Nevertheless, most of the programming
languages do not best in all styles of
programming.
Logic Programming Language
Rule-based (rules are specified in no particular order)
Example: Prolog
Logic-based languages specify a set of attributes that a
solution must have, rather than a set of steps to obtain a
solution.
Oz, and Mozart Programming System cross-platform Oz
Prolog (formulates data and the program evaluation
mechanism as a special form of mathematical logic
called Horn logic and a general proving mechanism
called logical resolution) Prolog (a logic programming
language featuring polymorphic typing, modular
programming, and higher-order programming)
Mercury (based on Prolog)
Logic Programming Paradigm
• The logic programming paradigm views
computation as automated reasoning over
a body of knowledge.
• Facts about the problem domain are
expressed as logic formulas, and
programs are executed by
applying inference rules over them until an
answer to the problem is found, or the set
of formulas is proved inconsistent.
Another way to look at various
paradigm
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Popular Programming Languages
From 1965-2019
• https://www.youtube.com/watch?v=Og847
HVwRSI
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
10 Best Programming Languages
of 2019
Python
• For becoming skilled at all-in-one language, you
should begin learning Python language that has
the ability to expand web apps, data analysis,
user interfaces, and much more, and
frameworks are also available for these tasks.
• Python is utilized by bigger companies mostly
that can evaluate vast data sets, thus this is a
huge chance to learn it and be a Python
programmer.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Java
• Java is considered as the perfect language for
the developers and programmers to learn.
• Currently, it is the top-most programming
language and has grabbed the highest position
with Android OS yet again, though it was a bit
down a few years ago.
• Java can be utilized for mobile-based
applications, enterprise-level purpose, for
creating desktop applications, and for
establishing Android apps on tablets and
smartphones.
PHP
• The web developers should learn about PHP or
Hypertext Preprocessor, a well-known
programming language.
• With the help of PHP, you can enlarge a web
app very quickly and effortlessly.
• PHP is the actual foundation of many strong
content management systems, for example,
WordPress.
• PHP is really a valuable programming language
for the developers and programmers.
JavaScript
• While you are expanding your site, JavaScript is
extremely functional as this language can immensely
assist you in generating the communication for your
website.
• You can utilize various in style frameworks in JavaScript
for constructing the superb user interface.
• When you're into web development, it's very important
to know about JavaScript for making interactive web
pages.
• JavaScript is applied for including animations on the web
pages, loading fresh images, scripts or objects on web
page, and craft hugely responsive user interfaces.
Objective-C
• If you are the one who is interested in
constructing apps for iOS, then you have to
know about Objective-C language efficiently.
• The most preferred choice for all the web
developers is Objective-C.
• When you have learned Objective-C, you can
begin applying XCode that is known to be the
authorized software development tool from
Apple.
• Thus you can quickly produce an iOS app that
can be noticeable in App Store.
Ruby
• Another popular programming language is Ruby
and Ruby on Rails.
• This can be learned easily, and also very strong
and clear-cut.
• If you've small time in hand and still want to craft
any project, then you can surely utilize Ruby
language.
• This programming language is applied
massively for web programming and hence
turned out to be the ideal selection for the
beginner companies.
Perl
• Perl is also a well-accepted programming
language that offers distinct tools for various
obscure setbacks such as system programming.
• Though this programming language is a bit
puzzling, it is really a strong one that you can
learn, and renew your knowledge.
• Perl is mainly used for sites and web app
expansion, desktop app development and
system administration, and test automation
that can be applied to testing databases, web
apps, networking devices, and much more.
C, C++ and C#
• You can increase your knowledge by learning about C
that is a unique programming language.
• Being the oldest, it should be learned first when you start
up, and it is mainly applied in forming different software.
• C++ or C plus plus is a bit more progressive than C, and
utilized immensely in forming hardware speeded
games.
• It is an ideal selection for strong desktop software as
well as apps for mobiles and desktop.
• Known to be the strongest language, C++ is applied in
vital operating systems, such as Windows.
C, C++ and C#
• After learning these 2, you can go ahead in
knowing about C# language.
• It won't be difficult for you to get accustomed
with C# after knowing C and C++.
• C# is actually the prime language for Microsoft
applications and services.
• While executing with .Net and ASP technologies,
you are required to be familiar with the C#
accurately.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
3-Declarative Paradigm
SQL
• When you are executing on databases
such as Microsoft SQL Server, Oracle,
MySQL, etc, you should be aware of SQL
programming language or Standard Query
Language.
• From this language, you can achieve the
proficiency of acquiring the needed data
from big and multifaceted databases.
Swift
• Swift is reflected upon as the trendiest program
language for expanding apps for Apple products.
• This language can be utilized by you for building
up apps for iOS activated devices and Apple's
MAC in a quick and simple method.
• When you are keen to expand a superb iOS
application, then it is better for you to gain
knowledge of Swift programming language.
Find The Best Candidate
Complete Core
Pure Functional
C/C++Low-level
Application Development
Better Scheme (+OO)Programmer's scripting
Scripting
Best CandidateLanguage Role
Esoteric Languages
• An esoteric language is one not intended
to be taken seriously.
• They can be jokes, near-minimalistic, or
despotic (purposely obfuscated or non-
deterministic).
• See Wikipedia’s article on esoteric
languages.
Ousterhout’s Dichotomy
• John Ousterhout once claimed that
programming languages roughly fall into
two types, which he called scripting and
system languages.
• You can read about this idea at Wikipedia.
Then read this two-part article (Part 1, Part
2) on the dichotomy and on languages that
seem to reject it.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
List of programming languages by
type
• This is a list of notable programming
languages, grouped by type is HERE.
• Since there is no overarching classification
scheme for programming languages, in
many cases, a language will be listed
under multiple headings.
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Conclusion
• This is all about the differences between
programming languages and few major
programming languages are discussed.
• The remaining languages like tcl, python,
smalltalk, cobol, c# and prolog are similar to the
above languages which are discussed.
• Selecting the suitable language for
developing a program or application is very
important
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
More about the flowchart
• https://www.info.ucl.ac.be/~pvr/paradigms
DIAGRAMeng108.pdf
References
• Wikipedia
• "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org.
• ^ "Smart Pointers - The Rust Programming Language". doc.rust-lang.org.
• ^ "Procedural Macros for Generating Code from Attributes". doc.rust-lang.org.
• ^ Scabia, Marco. "What is AGAL | Adobe Developer Connection". www.adobe.com. Adobe.
Retrieved 8 May 2018.
• ^ Hodorowicz, Luke. "Shading Languages". www.shiningrocksoftware.com. Shining Rock
Software. Retrieved 8 May 2018.
• ^ Foley, Tim; Ha
• Foley, Tim; Hanrahan, Pat. "Spark: Modular, Composable Shaders for Graphics Hardware |
Intel® Software". software.intel.com. ACM. Retrieved 8 May 2018.
• ^ "Nitrous FAQ". oxidegames.com. Retrieved 8 May 2018.
• ^ Linietsky, Juan; Manzur, Ariel. "Shading language — Godot Engine latest
documentation". docs.godotengine.org. Godot community. Retrieved 8 May 2018.
• ^ Wulf, W.A.; Russell, D.B.; Haberman, A.N. (December 1971). "BLISS: A Language for
Systems Programming". Communications of the ACM. 14 (12): 780–
790. CiteSeerX 10.1.1.691.9765. doi:10.1145/362919.362936. Retrieved January 11, 2014.
• ^ "C++ Applications".
• ^ "Mozilla Research". 1 January 2014.
Programming Languages
Categories
@Lili_PLS
By: Professor Lili Saghafi
proflilisaghafi@gmail.com
Classification Of Programming
Languages
Concepts Of Programming
Languages

Weitere ähnliche Inhalte

Was ist angesagt?

introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languagesNaqashAhmad14
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Program & language generation
Program & language generationProgram & language generation
Program & language generationBuxoo Abdullah
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1lakshmi kumari neelapu
 
Programming Fundamentals lecture 1
Programming Fundamentals lecture 1Programming Fundamentals lecture 1
Programming Fundamentals lecture 1REHAN IJAZ
 
Programming language
Programming languageProgramming language
Programming languageShuja Qais
 
Computer languages
Computer languagesComputer languages
Computer languagesAqdasNoor
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentationfazli khaliq
 
Programming languages
Programming languagesProgramming languages
Programming languagesAsmasum
 
notes on Programming fundamentals
notes on Programming fundamentals notes on Programming fundamentals
notes on Programming fundamentals ArghodeepPaul
 
Programming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharProgramming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharVivek Parihar
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming LanguagesJuhi Bhoyar
 
Theory of programming
Theory of programmingTheory of programming
Theory of programmingtcc_joemarie
 
Programming languages
Programming languagesProgramming languages
Programming languagesvito_carleone
 

Was ist angesagt? (20)

Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Program & language generation
Program & language generationProgram & language generation
Program & language generation
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
 
Programming Fundamentals lecture 1
Programming Fundamentals lecture 1Programming Fundamentals lecture 1
Programming Fundamentals lecture 1
 
Programming language
Programming languageProgramming language
Programming language
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentation
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
 
History of programming
History of programmingHistory of programming
History of programming
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
notes on Programming fundamentals
notes on Programming fundamentals notes on Programming fundamentals
notes on Programming fundamentals
 
Programming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharProgramming languages and concepts by vivek parihar
Programming languages and concepts by vivek parihar
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming Languages
 
Programming
ProgrammingProgramming
Programming
 
Computer programming languages
Computer programming languagesComputer programming languages
Computer programming languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Theory of programming
Theory of programmingTheory of programming
Theory of programming
 
Programming languages
Programming languagesProgramming languages
Programming languages
 

Ähnlich wie Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi

Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming VanessaBuensalida
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptxcrAmth
 
Lec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studyLec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studysamiullahamjad06
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issueJigisha Pandya
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1 ITNet
 
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxAryaDutta4
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugageseShikshak
 
X-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdfX-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdfAlefya1
 
week 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptxweek 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptxnuruddinnnaim
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languagesAman Kumar
 

Ähnlich wie Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi (20)

programming.pptx
programming.pptxprogramming.pptx
programming.pptx
 
sege.pdf
sege.pdfsege.pdf
sege.pdf
 
Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming
 
Presentation-1.pptx
Presentation-1.pptxPresentation-1.pptx
Presentation-1.pptx
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
 
Unit 1
Unit 1Unit 1
Unit 1
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
Lec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there studyLec21&22.pptx programing language and there study
Lec21&22.pptx programing language and there study
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issue
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
Computer programing 111 lecture 1
Computer programing 111 lecture 1 Computer programing 111 lecture 1
Computer programing 111 lecture 1
 
Programming language
Programming languageProgramming language
Programming language
 
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptx
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugages
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
X-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdfX-CS-8.0 Programming in C Language 2022-2023.pdf
X-CS-8.0 Programming in C Language 2022-2023.pdf
 
week 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptxweek 2 - INTRO TO PROGRAMMING.pptx
week 2 - INTRO TO PROGRAMMING.pptx
 
sl slides-unit-1.pptx
sl slides-unit-1.pptxsl slides-unit-1.pptx
sl slides-unit-1.pptx
 
Top 10 programming languages
Top 10 programming languagesTop 10 programming languages
Top 10 programming languages
 

Mehr von Professor Lili Saghafi

Artificial Intelligence and the importance of Data, By : Prof. Lili Saghafi
Artificial Intelligence and the importance of Data,  By : Prof. Lili SaghafiArtificial Intelligence and the importance of Data,  By : Prof. Lili Saghafi
Artificial Intelligence and the importance of Data, By : Prof. Lili SaghafiProfessor Lili Saghafi
 
Introduction to Quantum Computing Lecture 1: Fundamentals
Introduction to Quantum Computing Lecture 1: FundamentalsIntroduction to Quantum Computing Lecture 1: Fundamentals
Introduction to Quantum Computing Lecture 1: FundamentalsProfessor Lili Saghafi
 
Software Engineering_Agile Software Development By: Professor Lili Saghafi
Software Engineering_Agile Software Development By: Professor Lili SaghafiSoftware Engineering_Agile Software Development By: Professor Lili Saghafi
Software Engineering_Agile Software Development By: Professor Lili SaghafiProfessor Lili Saghafi
 
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili SaghafiQuantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili SaghafiProfessor Lili Saghafi
 
Introduction to blockchain lesson 2 By: Professor Lili Saghafi
Introduction to blockchain lesson 2 By: Professor Lili SaghafiIntroduction to blockchain lesson 2 By: Professor Lili Saghafi
Introduction to blockchain lesson 2 By: Professor Lili SaghafiProfessor Lili Saghafi
 
Introduction to Blockchain Technology By Professor Lili Saghafi
Introduction to Blockchain Technology By Professor Lili SaghafiIntroduction to Blockchain Technology By Professor Lili Saghafi
Introduction to Blockchain Technology By Professor Lili SaghafiProfessor Lili Saghafi
 
Cyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
Cyber Security and Post Quantum Cryptography By: Professor Lili SaghafiCyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
Cyber Security and Post Quantum Cryptography By: Professor Lili SaghafiProfessor Lili Saghafi
 
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...Professor Lili Saghafi
 
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...Professor Lili Saghafi
 
Machine learning by using python Lesson One Part 2 By Professor Lili Saghafi
Machine learning by using python Lesson One Part 2 By Professor Lili SaghafiMachine learning by using python Lesson One Part 2 By Professor Lili Saghafi
Machine learning by using python Lesson One Part 2 By Professor Lili SaghafiProfessor Lili Saghafi
 
Machine learning by using python By: Professor Lili Saghafi
Machine learning by using python By: Professor Lili SaghafiMachine learning by using python By: Professor Lili Saghafi
Machine learning by using python By: Professor Lili SaghafiProfessor Lili Saghafi
 
What is digital humanities ,By: Professor Lili Saghafi
What is digital humanities ,By: Professor Lili SaghafiWhat is digital humanities ,By: Professor Lili Saghafi
What is digital humanities ,By: Professor Lili SaghafiProfessor Lili Saghafi
 
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili SaghafiEffective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili SaghafiProfessor Lili Saghafi
 
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili SaghafiComputer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili SaghafiProfessor Lili Saghafi
 
Data Science unit 2 By: Professor Lili Saghafi
Data Science unit 2 By: Professor Lili SaghafiData Science unit 2 By: Professor Lili Saghafi
Data Science unit 2 By: Professor Lili SaghafiProfessor Lili Saghafi
 
Data science unit 1 By: Professor Lili Saghafi
Data science unit 1 By: Professor Lili Saghafi Data science unit 1 By: Professor Lili Saghafi
Data science unit 1 By: Professor Lili Saghafi Professor Lili Saghafi
 
Data Scientist By: Professor Lili Saghafi
Data Scientist By: Professor Lili SaghafiData Scientist By: Professor Lili Saghafi
Data Scientist By: Professor Lili SaghafiProfessor Lili Saghafi
 
New Assessments in Higher Education with Computers by: Prof Lili Saghafi
New Assessments in Higher Education with Computers by: Prof Lili Saghafi New Assessments in Higher Education with Computers by: Prof Lili Saghafi
New Assessments in Higher Education with Computers by: Prof Lili Saghafi Professor Lili Saghafi
 

Mehr von Professor Lili Saghafi (20)

Artificial Intelligence and the importance of Data, By : Prof. Lili Saghafi
Artificial Intelligence and the importance of Data,  By : Prof. Lili SaghafiArtificial Intelligence and the importance of Data,  By : Prof. Lili Saghafi
Artificial Intelligence and the importance of Data, By : Prof. Lili Saghafi
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Ai
AiAi
Ai
 
Introduction to Quantum Computing Lecture 1: Fundamentals
Introduction to Quantum Computing Lecture 1: FundamentalsIntroduction to Quantum Computing Lecture 1: Fundamentals
Introduction to Quantum Computing Lecture 1: Fundamentals
 
Software Engineering_Agile Software Development By: Professor Lili Saghafi
Software Engineering_Agile Software Development By: Professor Lili SaghafiSoftware Engineering_Agile Software Development By: Professor Lili Saghafi
Software Engineering_Agile Software Development By: Professor Lili Saghafi
 
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili SaghafiQuantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
 
Introduction to blockchain lesson 2 By: Professor Lili Saghafi
Introduction to blockchain lesson 2 By: Professor Lili SaghafiIntroduction to blockchain lesson 2 By: Professor Lili Saghafi
Introduction to blockchain lesson 2 By: Professor Lili Saghafi
 
Introduction to Blockchain Technology By Professor Lili Saghafi
Introduction to Blockchain Technology By Professor Lili SaghafiIntroduction to Blockchain Technology By Professor Lili Saghafi
Introduction to Blockchain Technology By Professor Lili Saghafi
 
Cyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
Cyber Security and Post Quantum Cryptography By: Professor Lili SaghafiCyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
Cyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
 
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
 
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
 
Machine learning by using python Lesson One Part 2 By Professor Lili Saghafi
Machine learning by using python Lesson One Part 2 By Professor Lili SaghafiMachine learning by using python Lesson One Part 2 By Professor Lili Saghafi
Machine learning by using python Lesson One Part 2 By Professor Lili Saghafi
 
Machine learning by using python By: Professor Lili Saghafi
Machine learning by using python By: Professor Lili SaghafiMachine learning by using python By: Professor Lili Saghafi
Machine learning by using python By: Professor Lili Saghafi
 
What is digital humanities ,By: Professor Lili Saghafi
What is digital humanities ,By: Professor Lili SaghafiWhat is digital humanities ,By: Professor Lili Saghafi
What is digital humanities ,By: Professor Lili Saghafi
 
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili SaghafiEffective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
 
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili SaghafiComputer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
 
Data Science unit 2 By: Professor Lili Saghafi
Data Science unit 2 By: Professor Lili SaghafiData Science unit 2 By: Professor Lili Saghafi
Data Science unit 2 By: Professor Lili Saghafi
 
Data science unit 1 By: Professor Lili Saghafi
Data science unit 1 By: Professor Lili Saghafi Data science unit 1 By: Professor Lili Saghafi
Data science unit 1 By: Professor Lili Saghafi
 
Data Scientist By: Professor Lili Saghafi
Data Scientist By: Professor Lili SaghafiData Scientist By: Professor Lili Saghafi
Data Scientist By: Professor Lili Saghafi
 
New Assessments in Higher Education with Computers by: Prof Lili Saghafi
New Assessments in Higher Education with Computers by: Prof Lili Saghafi New Assessments in Higher Education with Computers by: Prof Lili Saghafi
New Assessments in Higher Education with Computers by: Prof Lili Saghafi
 

Kürzlich hochgeladen

Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17Celine George
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptxSandy Millin
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxAditiChauhan701637
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17Celine George
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.raviapr7
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxMYDA ANGELICA SUAN
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxheathfieldcps1
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxEduSkills OECD
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfYu Kanazawa / Osaka University
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsEugene Lysak
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfMohonDas
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE
 
Prescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxPrescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxraviapr7
 
CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapitolTechU
 
How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17Celine George
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRATanmoy Mishra
 

Kürzlich hochgeladen (20)

Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptx
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17How to Add Existing Field in One2Many Tree View in Odoo 17
How to Add Existing Field in One2Many Tree View in Odoo 17
 
Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.Drug Information Services- DIC and Sources.
Drug Information Services- DIC and Sources.
 
Patterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptxPatterns of Written Texts Across Disciplines.pptx
Patterns of Written Texts Across Disciplines.pptx
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
 
The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George Wells
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdf
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024
 
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdfPersonal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
 
Prescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxPrescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptx
 
CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptx
 
How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17How to Add a many2many Relational Field in Odoo 17
How to Add a many2many Relational Field in Odoo 17
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
 

Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi

  • 1. Programming Languages Categories Classification Of Programming Languages Concepts Of Programming Languages @Lili_PLS By: Professor Lili Saghafi proflilisaghafi@gmail.com
  • 2. What is Programming Language? • A programming language is a notation designed to connect instructions to a machine or a computer. • Programming languages are mainly used to control the performance of a machine or to express algorithms. • At present, thousand programming languages have been implemented. • In the computer field, many languages need to be stated in an imperative form, while other programming languages utilize declarative form. • The program can be divided into two forms such as syntax and semantics.
  • 3. • With thousands of incredibly diverse programming languages loose in the world, classifying them is a good use of our time.
  • 4. Programming Language Different languages have different purposes, so it makes sense to talk about different kinds, or types, of languages. Some types are: • Machine languages, that are interpreted directly in hardware • Assembly languages, that are thin wrappers over a corresponding machine language
  • 5. Programming Language • High-level languages, that are anything machine-independent • System languages, that are designed for writing low-level tasks, like memory and process management • Scripting languages, that are generally extremely high-level and powerful • Domain-specific languages, that are used in highly special-purpose areas only
  • 6. Programming Language • Visual languages, that are non-text based • Esoteric languages, that are not really intended to be used, but are very interesting, funny, or educational in some way • These types are not mutually exclusive: – Perl is both high-level and scripting; – C is considered both high-level and system. • Other types people have identified: – Toy, Educational, Very High-Level, Compiled, Interpreted, Free- Form, Curly Brace, Applicative, Von Neumann, Expression- Oriented, Persistent, Concurrent, Glue, Intermediate, Quantum, Hybrid. See Wikipedia’s category page on programming language classification.
  • 7. Emphasize • Low level , The lowest-level programming paradigms like Machine language , Assembly • High Level , Third generation languages and after
  • 11. Application Development • To develop applications, a language is needed which is complete and powerful but very safe. • The complexity of large application mandates a compile time safe language. • It should also be fairly high level and object oriented. The only languages which I believe comes close to this today are Eiffel and Java. • There is currently no outstanding candidate language for this category.
  • 12. System Languages • System programming languages differ from application programming languages in that they are more concerned with managing a computer system rather than solving general problems in health care, game playing, or finance. • In a system langauge, the programmer, not the runtime system, is generally responsible for: – Memory management – Process management – Data transfer – Caches – Device drivers – Directly interfacing with the operating system
  • 14. Programming Paradigms • Programming paradigms are a way to classify programming languages based on their features. • Languages can be classified into multiple paradigms. 1-Some paradigms are concerned mainly with implications for the execution model of the language, such as allowing side effects, or whether the sequence of operations is defined by the execution model. 2-Other paradigms are concerned mainly with the way that code is organized, such as grouping a code into units along with the state that is modified by the code. 3-Yet others are concerned mainly with the style of syntax and grammar.
  • 15. Programming Paradigms • Programming paradigms are a way to classify programming languages based on their features. • Languages can be classified into multiple paradigms. • Just as software engineering (as a process) is defined by differing methodologies, so the programming languages (as models of computation) are defined by differing paradigms.
  • 16. Programming Paradigms • Some languages are designed to support one paradigm (smalltalk supports object-oriented programming, haskell supports functional programming) • Other programming languages support multiple paradigms (such as object pascal, C++, java, javascript, C#, scala, visual basic, common lisp, scheme, perl, PHP, python, ruby, wolfram language, oz, and F#).
  • 17. Programming Paradigms • For example, programs written in c++, object pascal or php can be purely procedural, purely object-oriented, or can contain elements of both or other paradigms. • Software designers and programmers decide how to use those paradigm elements.
  • 18. Programming Paradigm Common programming paradigms include : • Imperative in which the programmer instructs the machine how to change its state, 1. Procedural which groups instructions into procedures, 2. Object-oriented which groups instructions together with the part of the state they operate on, • Declarative in which the programmer merely declares properties of the desired result, but not how to compute it ( what not how) 1. Functional in which the desired result is declared as the value of a series of function applications, 2. Logic in which the desired result is declared as the answer to a question about a system of facts and rules, 3. Mathematical in which the desired result is declared as the solution of an optimization problem
  • 20. 1-Imperative Paradigm Imperative paradigm have two main features: • They state the order in which operations occur, with constructs that explicitly control that order, and they allow side effects, in which state can be modified at one point in time, within one unit of code, and then later read at a different point in time inside a different unit of code. • The communication between the units of code is not explicit. • Meanwhile, in object-oriented programming, code is organized into objects that contain state that is only modified by the code that is part of the object. • Most object-oriented languages are also imperative languages.
  • 21. 2-Literate programming, as a form of imperative • Literate programming, as a form of imperative programming, structures programs as a human-centered web, as in a hypertext essay: documentation is integral to the program, and the program is structured following the logic of prose exposition, rather than compiler convenience. • The literate programming paradigm, as conceived by Knuth, represents a move away from writing computer programs in the manner and order imposed by the computer, and instead enables programmers to develop programs in the order demanded by the logic and flow of their thoughts. • Literate programs are written as an uninterrupted exposition of logic in an ordinary human language, much like the text of an essay, in which macros are included to hide abstractions and traditional source code.
  • 22. Imperative Programming Languages Imperative programming languages may be multi-paradigm and appear in other classifications. Here is a list of programming languages that follow the imperative paradigm: Central features are variables, assignment statements, and iteration – Include languages that support object-oriented programming – Include scripting languages – Include the visual languages – Examples: C, Java, Perl, JavaScript, Visual BASIC .NET, C++
  • 23. Perl Language • Perl Language, is a file management language for UNIX. • it is more popular for its common gateway interface programming (CGI). • It is a term for programs that web servers can perform to allow additional capabilities of web pages. • Pearl language is a method for searching text and it is used for useful server functions and other databases, and it is very easy to pick up the fundamentals if you have any experience in any language. • As a CGi language, web hosting services select Perl language over C++ language. • Because, the web hosts can review Perl script files. Since they are text files, when C++ is compiled.
  • 24. Low-level • For the purpose of operating systems and other low level code we need a language that operates fast and just above the machine level. • Of course there will always be occasion to slip into assembly but that is by its nature machine specific and so not considered here. • Both C and C++ can be used for this. • They provide the low level power needed while giving a reasonable level of safety and abstraction.
  • 25. C Language • The C language is a basic programming language and it is a very popular language, particularly used in game programming, • Because C language includes the additional packing of the C++, Every programmer uses this language because it makes programs faster . • However the value of this language gives the reusability of C++ to get the slight increase in performance with C language.
  • 26. Imperative programming Languages Java Language • The Java language is a multi platform language that’s particularly helpful in networking. • Of course, mostly this language is used on the web with Java applets. • However, this language is used to design cross platform programs, Since it similar to C++ in structure and syntax. • For C++ programmers, Java language is very easy to learn and it offers some advantages provided by object oriented programming. • Like reusability and it can be difficult to write efficient code in Java. • But, nowadays the speed of the Java language has increased and 1.5 version offers some good features for easy program making.
  • 27. 3-Declarative Paradigm • languages that fit the declarative paradigm do not state the order in which to execute operations. • Instead, they supply a number of operations that are available in the system, along with the conditions under which each is allowed to execute. • The implementation of the language's execution model tracks which operations are free to execute and chooses the order on its own.
  • 28. Declarative Paradigm • Independent of the imperative branch, declarative programming paradigms were developed. • In these languages, the computer is told what the problem is, not how to solve the problem – the program is structured as a set of properties to find in the expected result, not as a procedure to follow. • Given a database or a set of rules, the computer tries to find a solution matching all the desired properties. • An archetype of a declarative language is the fourth generation language SQL, and the family of functional languages and logic programming.
  • 29. 4-Symbolic programming Paradigm • Symbolic programming is a paradigm that describes programs able to manipulate formulas and program components as data. • Programs can thus effectively modify themselves, and appear to "learn", making them suited for applications such as artificial intelligence, expert systems, natural-language processing and computer games. • Languages that support this paradigm include Lisp and Prolog.
  • 31. • There are not only 4 types of programming language paradigm . • There are endless types of programming language, you can view all the different types here. • The main types of programming languages are:
  • 33. 1-Machine code • The lowest-level programming paradigms are machine code, which directly represents the instructions (the contents of program memory) as a sequence of numbers, and assembly language where the machine instructions are represented by mnemonics and memory addresses can be given symbolic labels. • These are sometimes called first- and second- generation languages.
  • 34. Machine code • In the 1960s, assembly languages were developed to support library COPY and quite sophisticated conditional macro generation and preprocessing abilities, CALL to (subroutines), external variables and common sections (globals), enabling significant code re-use and isolation from hardware specifics via use of logical operators such as READ/WRITE/GET/PUT. • Assembly was, and still is, used for time critical systems and often in embedded systems as it gives the most direct control of what the machine does.
  • 35. 2-Assembly Language • An assembly language is an encoding of machine code into something more readable. • It assigns human-readable labels (or names) to storage locations, jump targets, and subroutine starting addresses, but doesn’t really go too far beyond that. Here’s the function from above on the Intel 64 architecture using the GAS assembly language:
  • 37. And here’s the same function, written for the SPARC:
  • 38. The main types of HIGH LEVEL programming languages are: 1. Procedural Programming Language. 2. Functional Programming Language. 3. Object-oriented Programming Language. 4. Scripting Programming Language. 5. Logic Programming Language.
  • 41. Procedural Programming Language • The procedural programming language is used to execute a sequence of statements which lead to a result. • Typically, this type of programming language uses multiple variables, heavy loops and other elements, which separates them from functional programming languages. • Functions of procedural language may control variables, other than function’s value returns. • For example, printing out information.
  • 42. Procedural Programming Language • Procedural programming languages are based on the concept of the unit and scope (the data viewing range) of an executable code statement. • A procedural program is composed of one or more units or modules, either user coded or provided in a code library; each module is composed of one or more procedures, also called a function, routine, subroutine, or method, depending on the language. • Examples of procedural languages include:
  • 43. Procedural Languages Third-generation Languages • COmmon Business Oriented Language (COBOL) – uses terms like file, move and copy. • FORmula TRANslation (FORTRAN) – using mathematical language terminology, it was developed mainly for scientific and engineering problems. • ALGOrithmic Language (ALGOL) – focused on being an appropriate language to define algorithms, while using mathematical language terminology, targeting scientific and engineering problems, just like FORTRAN. • Programming Language One (PL/I) – a hybrid commercial-scientific general purpose language supporting pointers.
  • 44. Procedural Languages Third-generation Languages • Beginners All purpose Symbolic Instruction Code (BASIC) – it was developed to enable more people to write programs. • C – a general-purpose programming language, initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. • All these languages follow the procedural paradigm. • That is, they describe, step by step, exactly the procedure that should, according to the particular programmer at least, be followed to solve a specific problem. • The efficacy and efficiency of any such solution are both therefore entirely subjective and highly dependent on that programmer's experience, inventiveness, and ability.
  • 45. Pascal Language • Pascal language is mostly a teaching language and few industries uses this language to write the programs. • This language tends to use keywords instead of symbols and braces in C language. • So this language is very easy for beginners to understand than a programming language like C, C++. • Borland is a compiler software company, which is using Delphi programming language for industrial strength. • Delphi is an object oriented language of Pascal, and presently Borland compilers only use it. (Visual Pascal)
  • 46. Fortran Language • Fortran language is a number crunching language and still it is used by scientists. • This language allows different sizes of variables up to the memory limit in the machine. • This language is suitable for engineers, who have to calculate values with high precision. • Program in Fortran is inflexible and sometimes it makes difficult to read.
  • 47. The previous example looks like this in Fortran 77 (note how the code begins in column 7 or beyond):
  • 57. Functional Programming Language • Functional programming language typically uses stored data, frequently avoiding loops in favor of recursive functions. • The functional programing’s primary focus is on the return values of functions, and side effects and different suggests that storing state are powerfully discouraged. • For example, in an exceedingly pure useful language, if a function is termed, it’s expected that the function not modify or perform any o/p. • It may, however, build algorithmic calls and alter the parameters of these calls. • Functional languages are usually easier and build it easier to figure on abstract issues, however, they’ll even be “further from the machine” therein their programming model makes it difficult to know precisely, but the code is decoded into machine language (which are often problematic for system programming).
  • 58. Functional programming languages • Functional programming languages define programs and subroutines as mathematical functions and treat them as first-class. • Many so-called functional languages are "impure", containing imperative features. • Many functional languages are tied to mathematical calculation tools.
  • 59. Functional programming languages • Functional programming is a subset of declarative programming. • Programs written using this paradigm use functions, blocks of code intended to behave like mathematical functions. • Functional languages discourage changes in the value of variables through assignment, making a great deal of use of recursion instead.
  • 60. Recursion • Recursion in comput er science is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem
  • 61. Recursion • Most computer programming languages support recursion by allowing a function to call itself from within its own code. • Some functional programming languages do not define any looping constructs but rely solely on recursion to repeatedly call code. • It is proved in computability theory that these recursive-only languages are Turing complete; this means that they are as powerful (they can be used to solve the same problems) • as imperative languages based on control structures such as while and for.
  • 62. Recursion • Repeatedly calling a function from within itself may cause the call stack to have a size equal to the sum of the input sizes of all involved calls. • for problems that can be solved easily by iteration, recursion is generally less efficient • for large problems, it is fundamental to use optimization techniques such as tail call optimization
  • 63. Turing complete • This means that this system is able to recognize or decide other data-manipulation rule sets. • Turing completeness is used as a way to express the power of such a data-manipulation rule set. • Virtually all programming languages today are Turing complete. • The concept is named after English mathematician and computer scientist Alan Turing.
  • 64. Call Stack • Call stack is a stack data structure that stores information about the active subroutines of a computer program. • This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or machine stack, and is often shortened to just "the stack". • Although maintenance of the call stack is important for the proper functioning of most software, the details are normally hidden and automatic in high-level programming languages. • Many computer instruction sets provide special instructions for manipulating stacks.
  • 65. Tail Call • A tail call is a subroutine call performed as the final action of a procedure. • If a tail call might lead to the same subroutine being called again later in the call chain, the subroutine is said to be tail-recursive, which is a special case of recursion. • Tail recursion (or tail-end recursion) is particularly useful, and often easy to handle in implementations. • Tail calls can be implemented without adding a new stack frame to the call stack.
  • 66. Functional languages include: • Pure, Haskell – Haskell Is A Statically Typed, Purely Functional Programming Language With Type Inference And Lazy Evaluation Haskell Is Based On The Semantics, But Not The Syntax, Of The Miranda Programming Language, Which Served To Focus The Efforts Of The Initial Haskell Working Group.The Last Stable Release Was Made In July 2010 With The Next Standard Planned For 2020. – Haskell Is Used In Academia And Industry. – As Of September 2019, Haskell Was The 23rd Most Popular Programming Language In Terms Of Google Searches For Tutorials And Made Up Less Than 1% Of Active Users On The Github Source Code Repository • Impure, C++ , LISP, PHP, Pearl, Python ,R, Java , Ruby
  • 67. Semantics • Semantics describes the processes a computer follows when executing a program in that specific language. • This can be shown by describing the relationship between the input and output of a program, or an explanation of how the program will be executed on a certain platform, hence creating a model of computation. • Formal semantics, for instance, helps to write compilers, better understand what a program is doing, and to prove, e.g., that the following if statement
  • 68. Functional Programming Languages • Main means of making computations is by applying functions to given parameters Examples: LISP, Scheme, ML, F# Pure Functional • Certain tasks can best be done working in a purely function environment. • And these languages while not as widely used today are in many ways so distinct from others that it is important to keep there legacy alive in the hopes that they may positively influence more common languages. • The only real example of this today is Haskell since languages like ML are not purely functional. • There is currently no outstanding candidate language for this category.
  • 69. Good to know • When programming computers or systems with many processors, • in process-oriented programming, programs are treated as sets of concurrent processes that act on a logical shared data structures. • pure functional programming disallows use of side-effects, • while structured programming disallows use of the go to statement.
  • 70. Good to know • Programming paradigms can also be compared with programming models which allow invoking an execution model by using only an API. • Programming models can also be classified into paradigms, based on features of the execution model.
  • 71. Good to know • For parallel computing, using a programming model instead of a language is common. • The reason is that details of the parallel hardware leak into the abstractions used to program the hardware. • This causes the programmer to have to map patterns in the algorithm onto patterns in the execution model (which have been inserted due to leakage of hardware into the abstraction). • As a consequence, no one parallel programming language maps well to all computation problems.
  • 72. Good to know • It is thus more convenient to use a base sequential language and insert API calls to parallel execution models, via a programming model. • Such parallel programming models can be classified according to abstractions that reflect the hardware, such as shared memory, distributed memory with message passing, notions of place visible in the code, and so forth. • These can be considered flavors of programming paradigm that apply to only parallel languages and programming models.
  • 73. 1-Imperative Paradigm Parallel computing • Parallel computing is a type of computation in which many calculations or the execution of processes are carried out simultaneously. • Large problems can often be divided into smaller ones, which can then be solved at the same time. • There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. • Parallelism has long been employed in high-performance computing, but it's gaining broader interest due to the physical constraints preventing frequency scaling. • As power consumption (and consequently heat generation) by computers has become a concern in recent years, • parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.
  • 74. Functional languages • Functional languages are usually easier and build it easier to figure on abstract issues, however, they’ll even be “further from the machine” therein their programming model makes it difficult to know precisely, but the code is decoded into machine language (which are often problematic for system programming).
  • 75. Functional languages LISP Language, is mostly used in computer science research and it stores all data in lists such as arrays. • The syntax of list is very simple and easy to make for developers to implement structures. Scheme Language • The scheme language is an alternate of LISP language, and it has a simpler syntax and features. • Any project under the scheme language will result in the re implementation of most of the LISP language. • But, this is very popular introductory language in the computer science department of MIT’s. • This language easily solves the problems instead of worrying about syntaxes of programming language.
  • 78. Object-oriented Programming Language • This programming language views the world as a group of objects that have internal data and external accessing parts of that data. • The aim of this programming language is to think about the fault by separating it into a collection of objects, that offer services which can be used to solve a specific problem.
  • 80. Object-oriented Programming Language • One of the main principle of object oriented programming language is encapsulation that everything an object will need must be inside of the object. • This language also emphasizes reusability through inheritance and the capacity to spread current implementations without having to change a great deal of code by using polymorphism. • In object-oriented programming, programs are treated as a set of interacting objects.
  • 81. Object-oriented Programming Language • Class-based Object-oriented programming languages support objects defined by their class. • Class definitions include member data. • Message passing is a key concept in Object-oriented languages. • Polymorphic functions parameterized by the class of some of their arguments are typically called methods.
  • 82. Object-oriented Programming Language • In languages with single dispatch, classes typically also include method definitions. • In languages with multiple dispatch, methods are defined by generic functions. • There are exceptions where single dispatch methods are generic functions (e.g. Bigloo's object system).
  • 83. Object-oriented Programming Language • Following the widespread use of procedural languages, object-oriented programming (OOP) languages were created, such as Simula, Smalltalk, C++, C#, Eiffel, PHP, and Java. • In these languages, data and methods to manipulate it are kept as one unit called an object.
  • 84. Object-oriented Programming Language • With perfect encapsulation, one of the distinguishing features of OOP, the only way that another object or user would be able to access the data is via the object's methods. • The inner workings of an object may be changed without affecting any code that uses the object.
  • 85. Object-oriented Programming Language • There is still some controversy raised by Alexander Stepanov, Richard Stallman and other programmers, concerning the efficacy of the OOP paradigm versus the procedural paradigm. • The need for every object to have associative methods leads some skeptics to associate OOP with software bloat; an attempt to resolve this dilemma came through polymorphism.
  • 86. Polymorphism example in Javaclass OverloadedObject { void overloadedMethod (int a) { System.out.println("This method is called when the parameter is an integer. a = " + a); } void overloadedMethod (int a, int b) { System.out.println("This method is called when there are two parameters, and they are both integers. a = " + a + ", b = " + b); } void overloadedMethod (double a) { System.out.println("This method is called when there is one parameter, and it is a double-precision number. a = " + a); } } class DemonstrateOverloading { public static void main (String args []) { OverloadedObject myObj = new OverloadedObject(); myObj.overloadedMethod(1); myObj.overloadedMethod(2, 3); myObj.overloadedMethod(4); } }
  • 87. Object-oriented Programming Language • Because object-oriented programming is considered a paradigm, not a language, it is possible to create even an object- oriented assembler language. • High Level Assembly (HLA) is an example of this that fully supports advanced data types and object-oriented assembly language programming – despite its early origins.
  • 90. Good to know • Thus, differing programming paradigms can be seen rather like motivational memes of their advocates, rather than necessarily representing progress from one level to the next • Precise comparisons of the efficacy of competing paradigms are frequently made more difficult because of new and differing terminology applied to similar entities and processes together with numerous implementation distinctions across languages.
  • 91. C++ Language • The C++ language has an object oriented structure which is used in large projects. • Programmers can collaborate one program into different parts or even one individual work on each part of the program. • The structure of object oriented also permit code to be reused many times. • This language is an efficient language. • But, many programmers will disagree
  • 92. A Recap on OOP • Encapsulation that everything an object will need must be inside of the object. • Inheritance and the capacity to spread current implementations without having to change a great deal of code by using polymorphism. • Polymorphic functions parameterized by the class of some of their arguments, are typically called methods. • With perfect encapsulation, one of the distinguishing features of oop, the only way that another object or user would be able to access the data is via the object's methods.
  • 94. Programming Paradigm Common programming paradigms include : • Imperative in which the programmer instructs the machine how to change its state, 1. Procedural which groups instructions into procedures, 2. Object-oriented which groups instructions together with the part of the state they operate on, • Declarative in which the programmer merely declares properties of the desired result, but not how to compute it ( what not how) 1. Functional in which the desired result is declared as the value of a series of function applications, 2. Logic in which the desired result is declared as the answer to a question about a system of facts and rules, 3. Mathematical in which the desired result is declared as the solution of an optimization problem
  • 96. Markup/programming hybrid Programming Language • Markup languages extended to support some programming • Examples: JSTL, XSLT
  • 97. Scripting Programming Language • These programming languages are often procedural and may comprise object-oriented language elements, but they fall into their own category as they are normally not full-fledged programming languages with support for development of large systems. • For example, they may not have compile-time type checking. • Usually, these languages require tiny syntax to get started.
  • 98. Scripting Languages • Scripting languages are used for wiring together systems and applications at a very high level. • They are almost always extremely expressive (they do a lot with very little code) and usually dynamic (meaning the compiler does very little, while the run- time system does almost everything).
  • 99. Scripting Languages • The most basic need of for scripting languages is one which is simple to use because it will be used by those with a minimum of programming knowledge or in situations where cranking out code which does the job is all the matters. • An example of where this language might be used by people with more of a programming background is in web scripting. • Examples of languages that might fall into this category are PHP, JavaScript, Perl, and Python.
  • 100. PHP Language – is used to design web pages and sometimes it is also used as scripting language. – This language is designed to develop a rapid website, and as a result comprises features which make it easy generate HTTP headers and link to databases. – As a scripting language, it includes a set of components permit the programmer to easily get up to speed. – However, it has more sophisticated object oriented features.
  • 101. Scripting Languages • VB could also be considered in this family but it is too frequently used for application development today. • There is currently no outstanding candidate language for this category. • When one is chosen I believe it should bare resemblance to the Application development language but with more bells and whistles to let one crank things out and make it easier.
  • 102. Programmer's scripting • Real programmers also often have a need for scripting capabilities. • However, they need a language which is simple and complete. • It must never stand in there way as is all to often the case with standard scripting languages. • It must be able to easily integrate into other languages.
  • 103. Better Scheme • Better Scheme is an excellent language for use in Programmer's Scripting. • It is simple, complete, powerful and concise. • In addition many programmers are exposed to Scheme or Lisp during their education and so are already familiar with it. • One thing which will most likely be needed is a good extension to Better Scheme which provides solid support for object oriented programming because Better Scheme scripts will frequently need to interact with objects created in other languages.
  • 104. Complete Core • This language may never be used for real programming but I still think it would be important to have in mind. • It would be a core language which the application, scripting and pure functional languages could build on and modify. • It would have everything truly necessary and little more. • One might think that the lambda calculus would be a minimal example of this. • However, it makes no provision for mutability which is clearly a key concept to many languages.
  • 105. Complete Core • In addition the lambda calculus has no concept of types, another important feature of modern languages. • The are no examples of a complete core language today. • There is currently no outstanding candidate language for this category.
  • 108. Logic Programming Language • These types of languages let programmers make declarative statements and then allow the machine to reason about the consequences of those statements. • In a sense, this language doesn’t tell the computer how to do something, but employing restrictions on what it must consider doing. • To call these groups ” types of language ” is really a bit confusing. • It’s easy to program in an object-oriented style in C language.
  • 109. Logic Programming Language • In truth, most of the languages include ideas and features from various domains, which only helps to increase the usefulness of these types of languages. • Nevertheless, most of the programming languages do not best in all styles of programming.
  • 110. Logic Programming Language Rule-based (rules are specified in no particular order) Example: Prolog Logic-based languages specify a set of attributes that a solution must have, rather than a set of steps to obtain a solution. Oz, and Mozart Programming System cross-platform Oz Prolog (formulates data and the program evaluation mechanism as a special form of mathematical logic called Horn logic and a general proving mechanism called logical resolution) Prolog (a logic programming language featuring polymorphic typing, modular programming, and higher-order programming) Mercury (based on Prolog)
  • 111. Logic Programming Paradigm • The logic programming paradigm views computation as automated reasoning over a body of knowledge. • Facts about the problem domain are expressed as logic formulas, and programs are executed by applying inference rules over them until an answer to the problem is found, or the set of formulas is proved inconsistent.
  • 112. Another way to look at various paradigm
  • 114. Popular Programming Languages From 1965-2019 • https://www.youtube.com/watch?v=Og847 HVwRSI
  • 116. 10 Best Programming Languages of 2019
  • 117. Python • For becoming skilled at all-in-one language, you should begin learning Python language that has the ability to expand web apps, data analysis, user interfaces, and much more, and frameworks are also available for these tasks. • Python is utilized by bigger companies mostly that can evaluate vast data sets, thus this is a huge chance to learn it and be a Python programmer.
  • 119. Java • Java is considered as the perfect language for the developers and programmers to learn. • Currently, it is the top-most programming language and has grabbed the highest position with Android OS yet again, though it was a bit down a few years ago. • Java can be utilized for mobile-based applications, enterprise-level purpose, for creating desktop applications, and for establishing Android apps on tablets and smartphones.
  • 120. PHP • The web developers should learn about PHP or Hypertext Preprocessor, a well-known programming language. • With the help of PHP, you can enlarge a web app very quickly and effortlessly. • PHP is the actual foundation of many strong content management systems, for example, WordPress. • PHP is really a valuable programming language for the developers and programmers.
  • 121. JavaScript • While you are expanding your site, JavaScript is extremely functional as this language can immensely assist you in generating the communication for your website. • You can utilize various in style frameworks in JavaScript for constructing the superb user interface. • When you're into web development, it's very important to know about JavaScript for making interactive web pages. • JavaScript is applied for including animations on the web pages, loading fresh images, scripts or objects on web page, and craft hugely responsive user interfaces.
  • 122. Objective-C • If you are the one who is interested in constructing apps for iOS, then you have to know about Objective-C language efficiently. • The most preferred choice for all the web developers is Objective-C. • When you have learned Objective-C, you can begin applying XCode that is known to be the authorized software development tool from Apple. • Thus you can quickly produce an iOS app that can be noticeable in App Store.
  • 123. Ruby • Another popular programming language is Ruby and Ruby on Rails. • This can be learned easily, and also very strong and clear-cut. • If you've small time in hand and still want to craft any project, then you can surely utilize Ruby language. • This programming language is applied massively for web programming and hence turned out to be the ideal selection for the beginner companies.
  • 124. Perl • Perl is also a well-accepted programming language that offers distinct tools for various obscure setbacks such as system programming. • Though this programming language is a bit puzzling, it is really a strong one that you can learn, and renew your knowledge. • Perl is mainly used for sites and web app expansion, desktop app development and system administration, and test automation that can be applied to testing databases, web apps, networking devices, and much more.
  • 125. C, C++ and C# • You can increase your knowledge by learning about C that is a unique programming language. • Being the oldest, it should be learned first when you start up, and it is mainly applied in forming different software. • C++ or C plus plus is a bit more progressive than C, and utilized immensely in forming hardware speeded games. • It is an ideal selection for strong desktop software as well as apps for mobiles and desktop. • Known to be the strongest language, C++ is applied in vital operating systems, such as Windows.
  • 126. C, C++ and C# • After learning these 2, you can go ahead in knowing about C# language. • It won't be difficult for you to get accustomed with C# after knowing C and C++. • C# is actually the prime language for Microsoft applications and services. • While executing with .Net and ASP technologies, you are required to be familiar with the C# accurately.
  • 128. 3-Declarative Paradigm SQL • When you are executing on databases such as Microsoft SQL Server, Oracle, MySQL, etc, you should be aware of SQL programming language or Standard Query Language. • From this language, you can achieve the proficiency of acquiring the needed data from big and multifaceted databases.
  • 129. Swift • Swift is reflected upon as the trendiest program language for expanding apps for Apple products. • This language can be utilized by you for building up apps for iOS activated devices and Apple's MAC in a quick and simple method. • When you are keen to expand a superb iOS application, then it is better for you to gain knowledge of Swift programming language.
  • 130. Find The Best Candidate Complete Core Pure Functional C/C++Low-level Application Development Better Scheme (+OO)Programmer's scripting Scripting Best CandidateLanguage Role
  • 131. Esoteric Languages • An esoteric language is one not intended to be taken seriously. • They can be jokes, near-minimalistic, or despotic (purposely obfuscated or non- deterministic). • See Wikipedia’s article on esoteric languages.
  • 132. Ousterhout’s Dichotomy • John Ousterhout once claimed that programming languages roughly fall into two types, which he called scripting and system languages. • You can read about this idea at Wikipedia. Then read this two-part article (Part 1, Part 2) on the dichotomy and on languages that seem to reject it.
  • 134. List of programming languages by type • This is a list of notable programming languages, grouped by type is HERE. • Since there is no overarching classification scheme for programming languages, in many cases, a language will be listed under multiple headings.
  • 136. Conclusion • This is all about the differences between programming languages and few major programming languages are discussed. • The remaining languages like tcl, python, smalltalk, cobol, c# and prolog are similar to the above languages which are discussed. • Selecting the suitable language for developing a program or application is very important
  • 138. More about the flowchart • https://www.info.ucl.ac.be/~pvr/paradigms DIAGRAMeng108.pdf
  • 139. References • Wikipedia • "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org. • ^ "Smart Pointers - The Rust Programming Language". doc.rust-lang.org. • ^ "Procedural Macros for Generating Code from Attributes". doc.rust-lang.org. • ^ Scabia, Marco. "What is AGAL | Adobe Developer Connection". www.adobe.com. Adobe. Retrieved 8 May 2018. • ^ Hodorowicz, Luke. "Shading Languages". www.shiningrocksoftware.com. Shining Rock Software. Retrieved 8 May 2018. • ^ Foley, Tim; Ha • Foley, Tim; Hanrahan, Pat. "Spark: Modular, Composable Shaders for Graphics Hardware | Intel® Software". software.intel.com. ACM. Retrieved 8 May 2018. • ^ "Nitrous FAQ". oxidegames.com. Retrieved 8 May 2018. • ^ Linietsky, Juan; Manzur, Ariel. "Shading language — Godot Engine latest documentation". docs.godotengine.org. Godot community. Retrieved 8 May 2018. • ^ Wulf, W.A.; Russell, D.B.; Haberman, A.N. (December 1971). "BLISS: A Language for Systems Programming". Communications of the ACM. 14 (12): 780– 790. CiteSeerX 10.1.1.691.9765. doi:10.1145/362919.362936. Retrieved January 11, 2014. • ^ "C++ Applications". • ^ "Mozilla Research". 1 January 2014.
  • 140. Programming Languages Categories @Lili_PLS By: Professor Lili Saghafi proflilisaghafi@gmail.com Classification Of Programming Languages Concepts Of Programming Languages