CSC 332 Survey of Programming Languages
CSC 332 Survey of Programming Languages
Survey of
Programming
Languages
C/C++, C#, JAVA, PYTHON, LISP,
PERL, ALGOL AND PROLOG
Introduction CSC 332: Survey of Programming Languages is a Second Semester course. It is a
four (4) credit degree course available to three hundred level students offering Computer
Science and all related courses, studying towards acquiring a Bachelor of Science in Computer
Science and other related disciplines. The course is divided into four (4) modules and 15 study
units. It entails the concept of programming languages. It further deals with general overview
of programming languages. The course also introduces language description, evolution of level
of programming languages and language comparison. concepts underlying modern
programming languages: C/C++, C#, Java, Python, LISP, PERL, ALGOL and PROLOG.
- T H E O V E R A L L A I M O F T H I S C O U R S E I S T O T E A C H Y O U G E N E R A L O V E RV I E W O F P R O G R A M M I N G L A N G U A G E S :
E V O L U T I O N , G E N E R AT I O N , C O N C E P T S , A P P L I C AT I O N D O M A I N A N D C R I T E R I A F O R L A N G U A G E E VA L U AT I O N .
T H E C O U R S E I S D E S I G N E D T O D E S C R I B E T H E F U N D A M E N TA L C O N C E P T S O F P R O G R A M M I N G L A N G U A G E B Y
D I S C U S S I N G T H E D E S I G N I S S U E S O F T H E VA R I O U S L A N G U A G E C O N S T R U C T S , E X A M I N I N G T H E D E S I G N
C H O I C E S F O R T H E S E C O N S T R U C T S I N S O M E O F T H E M O S T C O M M O N L A N G U A G E S , A N D C R I T I C A L LY
C O M PA R I N G D E S I G N A LT E R N AT I V E S , F U N D A M E N TA L S Y N TA C T I C A N D S E M A N T I C C O N C E P T S U N D E R LY I N G
MODERN PROGRAMMING LANGUAGES, DIFFERENT MODERN PROGRAMMING LANGUAGES
*Course Aim:
This course aims to take a step further in teaching you the basic and best
approach to survey programming languages. The general objective is
to:
1.Demonstrate understanding of the evolution of programming languages and
relate how this history has led to the paradigms available today.
2.Identify at least one outstanding and distinguishing characteristic for each of
the programming paradigms covered 3. Evaluate the tradeoffs between the
different paradigms, considering such issues as space efficiency, time efficiency
(of both the computer and the programmer), safety, and power of expression. 4.
Identify at least one distinguishing characteristic for each of the programming
paradigms covered in this unit.
5.Describe The Importance And Power Of Abstraction In The Context Of
Virtual Machines. 6.Explain The Benefits Of Intermediate Languages In The
Compilation Process. 7. Evaluate The Tradeoffs In Reliability Vs. Writability
8.Explain the differences between machine-dependent and machine-independent
translation and where these differences are evident in the translation process. Examine,
9.evaluate and compare these languages 10. Discuss evolution, history, program
structure and features of some commonly used programming languages paradigm
such as C/C++, C#, Java, Python, LISP, PERL, ALGOL and PROLOG. To increase
capacity of computer science students to express ideas 11.Improve their
background for choosing appropriate languages 12. Increase the ability to learn
new languages.
- Python is a high-level, interpreted programming language known for its readability and
simplicity. It supports multiple programming paradigms, including procedural, object-
oriented, and functional programming. Python is widely used for web development, data
analysis, artificial intelligence, scientific computing, and more. Its extensive standard
Language Comparison by Domain and Career goals
LISP
- (LISt Processing)
LISP is one of the oldest high-level programming languages, designed primarily for symbolic
computation and artificial intelligence research. It is known for its unique parenthetical syntax
and powerful macro system. LISP has influenced many later programming languages and is still
used in AI, academic research, and other specialized fields.
Language Comparison Paradigm, Generics,Type System and Execution strategy
-
Python has automatic garbage collection. It uses a technique called reference counting along with a cycle-detecting
garbage collector to manage memory. This means that Python automatically deallocates memory when objects are
no longer in use, which helps in managing memory efficiently without explicit memory management by the
programmer. Mention two other languages using garbage collectors..
First Generation 1GL:
- Machine-level programming language used to program first-generation.
smaller
- Allowed mnemonic abbreviations as symbolic names and the concept of
commands and operands was introduced
-A Programmer's work became much easier as symbolic notation and addressing of
instructions and data was now possible
- A Compilation system, called assemblers, were developed to translate the
assembly language/symbolic programs into machine code
-
A flip-flop is a digital logic circuit used in computers and other digital systems to store binary data. It is a type of
bistable multivibrator, meaning it has two stable states and can be used to store a single bit of information. Flip-
flops are fundamental building blocks in sequential logic circuits and are used for various purposes, such as data
storage, data transfer, and event detection. E.g SR (Set-Reset) Flip-Flop, D (Data or Delay) Flip-Flop:, JK Flip-
Flop and T (Toggle) Flip-Flop:.
Third Generation 3GL:
- Third generation languages /high level languages/Problem oriented languages:
- allow control structures which are based on logical data objects: variables of a
specific type
- Are designed to be more human-readable and to facilitate easier and more efficient
programming.
- Xtics
includes: High-level Abstraction, English-like Syntax,
Portability, Enhanced Productivity, Support For Structured
Programming And Error Handling
E.G includes: Fortran, Cobol, C, Pascal, Java and Python
Fourth Generation 4GL:
-Fourth generation languages/Non procedural languages deal database and query
languages, and program or application generators.
-increasing usage of software packages like database systems, spread sheets,
statistical packages, makes it necessary to have a medium of control available
-In 4GL the user describes what he wants to be solved, instead of how he wants to
solve a problem - as it is done using procedural languages.
- interactive programming environments. E.g. SQL: a query language for relational
databases based on Codd's requirements for nonprocedural query languages.
-NATURAL
F o u r t h - g e nemphasizing
e r a t i o n P r o g r aon
m ma i nstructured
g L a n g u a g e sprogramming
( 4 g l s ) A r e D e sstyle.
i g n e d Program
T o B e C l o sgenerators,
er To Human
Lbased
a n g u aon ge T specification
han Third-gen method
e r a t i o n and
L a n gproduce
u a g e s ( 3 ganl s ) .output
T h e y A r(e.g.
e Aim aehigh
d At Rlevel
e d u cprogram)
ing The
Complexity And Time Required To Develop Software By Providing Higher-level
Commands And Tools For Database Manipulation, Report Generation, And User
Interface Creation’ E.g sql (structured query language), matlab, sas (statistical
analysis system), abap (advanced busines, application programming), coldfusion and
powerbuilder
Fifth Generation 5GL:
-5GL is based around solving problems using constraints given to program rather
using an algorithm.
-5GL allows computers to have their own ability to think and their own inferences
can be worked out by using the programmed information in large databases.
-5GL gave birth to the dream of robot with AI and Fuzzy Logic.
-It is based on the concept of artificial intelligence.
-Rather than solving a problem algorithmically, an application can be built to solve
-it
based on some constraints, i.e., we make computers learn to solve any problem.
parallel processing & superconductors are used for this type of
language to make real artificial intelligence. advantages of this
generation is that machines can make decisions, it reduces
programmer effort to solve a problem and very easier than 3gl or 4gl
to learn and use. examples are: prolog, lisp, etc.