6diprog - Prelims
6diprog - Prelims
Most inventors aimed to simplify and speed up for Formula Translation. It is one of the oldest
tasks, with computing being a significant computer programming languages still used today.
technological breakthrough.
1958: Algol: Created by a committee for scientific
Early mathematicians focused on making repetitive use, Algol stands for Algorithmic Language. Algol
calculations easier to perform. served as a starting point in the development of
languages such as Pascal, C, C++, and Java.
Early computers allowed information to be saved in
1959: COBOL: Created by Dr. Grace Murray Hopper
punch cards, similar to how attendance is recorded
as a computer programming language that can
in some companies.
run on all brands and types of computers, COBOL
stands for COmmon Business Oriented Language.
Charles Babbage's Analytical Engine, an early
It is used in ATMs, credit card processing, telephone
computer, is the legacy of most modern
systems, hospital and government computers,
computers. It featured a printing mechanism that
automotive systems, and traffic signals. In the
created outputs for computations, making data
movie The Terminator, fragments of COBOL source
accessible to those in need.
code were used in the Terminator’s vision display.
Analytical Engine 1959: LISP: Created by John McCarthy of MIT, LISP is
In 1883, Lady Ada Lovelace and Charles Babbage still in use. The acronym means LISt Processing
developed the first computer programming language. It was originally made for artificial
language, the Analytical Engine. Lovelace focused intelligence research but at present time, can be
on making computers represent more than just used in circumstances where Ruby or Python are
numbers and created an algorithm for the used.
Analytical Engine, earning Babbage credit for the
development. As the world evolved and new 1964: BASIC: Developed by John G. Kemeny and
devices were invented, many more languages Thomas E. Kurz at Dartmouth College that the
followed. students who were not technical or mathematically
inclined could still use computers, it stands for
History of Programming Language Beginner’s All-purpose Symbolic Instruction
Code. A modified version of BASIC was written by
1883: Algorithm for the Analytical Engine: Bill Gates and Paul Allen. It became the first
Developed by Ada Lovelace for Charles Babbage’s Microsoft product.
Analytical Engine to calculate Bernoulli numbers,
it is the first computer programming language. 1970: Pascal: Developed by Niklaus Wirth, Pascal
was named in honor of the French mathematician,
1949: Assembly Language: First widely used in physicist, and philosopher Blaise Pascal. It is simple
the Electronic Delay Storage Automatic to learn and was initially created to teach computer
Calculator, assembly language is a low-level programming. Pascal was the main language used
computer programming language that simplifies for software development in Apple’s early years.
the language of machine code, the specific
instructions needed to tell the computer what to 1972: Smalltalk: Developed by Alan Kay, Adele
do. Goldberg, and Dan Ingalls at Xerox Palo Alto
Research Center, Smalltalk allowed computer
1952: Autocode: Autocode was a generic term for a programmers to modify code on the fly and also
family of early computer programming languages. introduced other aspects now present in common
The first was developed by Alick Glennie for the computer programming languages including
Mark 1 computer at the University of Manchester in Python, Java, and Ruby.
the U.K. Some consider autocode to be the first
compiled computer programming language, 1972: C: Developed by Dennis Ritchie at Bell Labs, C
implying that it can be translated directly into is considered by many to be the first high-level
machine code using a program called a compiler. language. A high-level computer programming
language is closer to human language and more
1957: Fortran: A computer programming language removed from the machine code. C was created so
created by John Backus for complicated scientific, that an operating system called Unix could be used
mathematical, and statistical work, Fortran stands on many different types of computers. It has
6DIPROGLANG
influenced many other languages, including Ruby, pre-selected chunks of code in a drag-and-drop
C#, Go, Java, JavaScript, Perl, PHP, and Python. fashion through a graphical user interface (GUI).
1972: SQL: SQL was developed by Donald D. 1993: R: Developed by Ross Ihaka and Robert
Chamberlin and Raymond F. Boyce at IBM. SQL Gentleman at the University of Auckland, New
stands for Structured Query Language. It is used Zealand, R is named after the first names of the
for viewing and changing information that is first two authors. It is mostly used by statisticians
stored in databases. SQL uses command and those performing different types of data
sentences called queries to add, remove, or view analysis.
data.
1995: Java: Originally called Oak, Java was
1978: MATLAB: Developed by Cleve Moler. MATLAB developed by Sun Microsystems. It was intended
stands for Matrix Laboratory. It is one of the best for cable boxes and hand-held devices but was
computer programming languages for writing later enhanced so it could be used to deliver
mathematical programs and is mainly used in information on the World Wide Web. Java is
mathematics, research, and education. It can also everywhere, from computers to smartphones to
be used to create two- and three-dimensional parking meters. Three billion devices run Java!
graphics.
1995: PHP: Created by Rasmus Lerdorf, PHP is used
1983: Objective-C: Created by Brad Cox and Tom mostly for Web development and is usually run
Love, Objective-C is the main computer on Web servers. It originally stood for Personal
programming language used when writing Home Page, as it was used by Lerdorf to manage
software for macOS and iOS, Apple’s operating his own online information. PHP is now widely used
systems. to build websites and blogs. WordPress, a popular
website creation tool, is written using PHP.
1983: C++: C++ is an extension of the C language
and was developed by Bjarne Stroustrup. It is one of 1995: Ruby: Ruby was created by Yukihiro “Matz”
the most widely used languages in the world. C++ Matsumoto, who combined parts of his favorite
is used in game engines and high-performance languages to form a new general-purpose
software like Adobe Photoshop. Most packaged computer programming language that can
software is still written in C++. perform many programming tasks. It is popular in
Web application development. Ruby code
1987: Perl: Perl was originally developed by Larry executes more slowly, but it allows for computer
Wall in 1987 as a scripting language designed for programmers to quickly put together and run a
text editing. Its purpose was to make report program.
processing easier. It is now widely used for many
purposes, including Linux system administration, 1995: JavaScript: Created in just 10 days by Brendan
Web development, and network programming. Eich, this language is mostly used to enhance
many Web browser interactions. Almost every
1990: Haskell: Named after Haskell Brooks Curry, an major website uses Javascript.
American logician and mathematician. Haskell is
called a purely functional computer 2000: C#: Developed by Microsoft with the goal of
programming language, which basically means combining the computing ability of C++ with the
that it is mostly mathematical. It is used by many simplicity of Visual Basic, C# is based on C++ and
industries, especially those that deal with is like Java in many aspects. It is used in almost all
complicated calculations, records, and Microsoft products and is primarily used for
number-crunching. developing desktop applications.
1991: Python: Designed by Guido Van Rossum, 2003: Scala: Created by Martin Odersky. Scala is a
Python is easier to read and requires fewer lines of computer programming language that combines
code than many other computer programming functional programming, which is mathematical,
languages. It was named after the British comedy with object-oriented programming, which is
group Monty Python. Popular sites like Instagram organized around data that controls access to code.
use frameworks that are written in Python. Its compatibility with Java makes it helpful in
Android development.
1991: Visual Basic: Developed by Microsoft, Visual
Basic allows programmers to choose and change
6DIPROGLANG
2003: Groovy: Developed by James Strachan and ⤷ PHP is a scripting language used on Web
Bob McWhirter, Groovy is derived from Java and server systems. Its code is embedded in
improves the productivity of developers because it HTML documents. The code is interpreted
is easy to learn and concise. on the server before the document is sent to
a requesting browser.
2009: Go: Go was developed by Google to address Special-purpose languages
problems that can occur in large software ⤷ RPG is an example of these languages.
systems. Since computer and technology use is
much different today than it was when languages PROGRAMMING ENVIRONMENTS
such as C++, Java, and Python were introduced and The environment is the collection of processes
used, problems arose when huge computer and programming tools used to create the
systems became common. Go was intended to program or software product
improve the working environment for ⤷ UNIX
programmers so they could write, read, and ⤷ An older operating system and tool
maintain large software systems more efficiently. collection created by Bell Labs
⤷ Borland JBuilder
2014: Swift: Developed by Apple as a replacement
⤷ An integrated development
for C, C++, and Objective-C, Swift is supposed to be
environment for Java
easier to use and allows less room for mistakes. It is
⤷ Microsoft Visual Studio
versatile and can be used for desktop and mobile
⤷ .NETA large, complex visual
apps and cloud services.
environmentUsed to program in C#,
Visual BASIC.NET, Jscript, J#, or C++
PROGRAMMING DOMAINS
Scientific applications
PROGRAMMING LANGUAGE DESIGN CRITERIA
⤷ In the early 40s computers were invented
⤷ Readability
for scientific applications.
⤷ The applications needed a lot of ⤷ Writability
floating-point computations. ⤷ Reliability
⤷ Fortran was the first language developed for ⤷ Portability
scientific applications. ⤷ Documentation
⤷ ALGOL 60 was intended for the same use. ⤷ Cost
Business applications
⤷ The first successful language for business
PARADIGMS OF PROGRAMMING LANGUAGES
was COBOL.
⤷ Produce reports, use decimal arithmetic
numbers and characters.
⤷ The arrival of PCs started new ways for
businesses to use computers.
⤷ Spreadsheets and database systems were
developed for business.
Artificial intelligence
⤷ Symbolic rather than numeric computations
are manipulated.
⤷ Symbolic computation is more suitably
done with linked lists than arrays.
⤷ LISP was the first widely used AI Imperative
programming language. ⤷ It is one of the oldest programming
Systems programming paradigms. It features close relation to
⤷ The O/S and all of the programming machine architecture.
supports tools are collectively known as its ⤷ Procedural
system software.
⤷ used to execute a sequence of
⤷ Need efficiency because of continuous use.
Scripting languages statements which lead to a result.
⤷ Put a list of commands, called a script, in a Typically, this type of programming
file to be executed. language uses multiple variables,
6DIPROGLANG
heavy loops and other elements, ● When translated, the source code
which separates them from becomes object code which is
functional programming languages. understandable by the computer
⤷ Object Oriented system. This process can be seen in the
⤷ views the world as a group of following diagram:
objects that have internal data and
IMPLEMENTATION MODELS
external accessing parts of that data. Assembler
⤷ Parallel Processing ⤷ converts assembly language mnemonics
⤷ is the development of program into machine code.
instructions by separating them Compiler
among multiple processors. ⤷ Translates a source program written in
⤷ divide and conquer some high-level programming language
Declarative into machine code for some computer
⤷ is a style of building programs that architecture
expresses logic of computation without ⤷ Output is an executable program
talking about its control flow. ⤷ Checks for syntax errors
⤷ often considers programs as theories of ⤷ Translates to an assembly/intermediate code
some logic ⤷ Generates an executable file
⤷ Logic ⤷ Linker – calls other libraries used
⤷ These types of languages let ⤷ Loader – places absolute memory locations
programmers make declarative or addresses
statements and then allow the Interpreter
machine to reason about the ⤷ Has software to run the program.
consequences of those statements ⤷ It reads the executable source program
⤷ Functional written in a high-level programming
⤷ typically uses stored data, language as well as data for this program,
frequently avoiding loops in favor of and it runs the program against the data to
recursive functions . produce some results.
⤷ The primary focus is on the return Languages Translation Processes
values of functions, and side effects Load Source Code, Run Immediately
and differences suggest that storing ⤷ runs one line of code at a time
state is powerfully discouraged. ⤷ some languages that have this process are
⤷ Data Flow Lisp, Prolog, SmalllTalk
⤷ Database Load Source Code, Compile Only, Run Later
⤷ This methodology is founded on ⤷ loads source code to a compiler, check for
data and its movement. Program errors, translates to assembly code then
statements are bounded by data generates an executable code
rather than hard-coding a series of ⤷ the executable file can be run by
steps. programmer or user at will – meaning any
time that running the program is called for.
LANGUAGE TRANSLATION ⤷ Some languages that have this process are
Java, C++, C#, R
Lead Source Code, Compile, Execute Immediately
⤷ loads the source code, compiles the code as
it executes.
● The source code which is written by the
⤷ Some languages that have this process are
programmer needs to be translated.
Python and Ruby
6DIPROGLANG
TYPES OF BINDING
Static Binding
⤷ also known as Early Binding
⤷ Writing of program or code.
⤷ Happens at compile time
⤷ Compiler figures out what variable to
assign to what method or function.
Dynamic Binding
⤷ Variables are bound to a type depending
on the value assigned.
⤷ Context binding with memory.
⤷ Association with real time.
⤷ Mapping with memory.
⤷ Happens at run-time.
BINDING TIME
Language Design Time
⤷ Defined by the Programming Language
creator
⤷ This is when CONSTRUCTS (literals,
operators, statements, names), FUNCTIONS
(predefined in library) and SYNTAX are
defined
Language Implementation
⤷ this is when the size of the primitive data
types are defined and standardized
⤷ the translation rules of high level construct
of the language to actual source code
6DIPROGLANG