0% found this document useful (0 votes)
38 views7 pages

6diprog - Prelims

The document provides a history of programming languages from 1883 to 2003, including Assembly Language, Fortran, COBOL, LISP, BASIC, Pascal, C, SQL, MATLAB, Objective-C, C++, Perl, Haskell, Python, JavaScript, C#, and Scala. It describes the origins and purposes of these languages.

Uploaded by

RV Tv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views7 pages

6diprog - Prelims

The document provides a history of programming languages from 1883 to 2003, including Assembly Language, Fortran, COBOL, LISP, BASIC, Pascal, C, SQL, MATLAB, Objective-C, C++, Perl, Haskell, Python, JavaScript, C#, and Scala. It describes the origins and purposes of these languages.

Uploaded by

RV Tv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

6DIPROGLANG

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

LANGUAGE TRANSLATION IN-DETAIL

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

Programming Time Dynamically typed programming languages


⤷ this is defined or determined by the ● Interpreter based
programmer ● The use one variable for multiple tasks by
⤷ this is where algorithms are made overriding the value defined in the code is
⤷ this is where additional rules are created allowed
Compile Time ● In dynamically typed programs all (or most)
⤷ This is when the machine utilizes the variables are also dynamically typed
programming language rules made by the ● Type-incorrect operations are captured
creator during program execution, rather than
⤷ Compiler generates during a type checking phase that goes
⤷ Syntax, grammar and semantic checks before execution.
⤷ Symbol table and parse tree ● Examples of this type are Javascript, Lisp,
⤷ Assembly code and executable code Perl, Python, Ruby, small-talk
Load Time TYPE CHECKING
⤷ This is determined by the operating system ● the process a translator goes through to
⤷ Allocates memory, assigns, and places determine whether type information in a
instructions in permanent locations program is consistent
preparing for execution
● Modern PLs often designed to do type
Execution Time
⤷ Interpreter and operating system work checking (as much as possible) during
together to make instructions in memory compilation
locations work. Type Checking during Compile-time (static)
DECLARATIONS AND DEFINITIONS
Declaration ● At compile-time, uses declaration
● is a syntactic structure to establish bindings. information or can infer types from variable
● is informing the compiler of the following uses
information: name of the variable, type of Type Checking during Runtime (dynamic)
value it holds and the initial value if any.
● Declaration does not create a variable; it only ● During execution, checks type of object
describes a variable name and the type of before doing operations on it
data it will hold, so memory is not allocated ● Uses type tags to record types of variables
at the time of declaration.
Definition Combined (compile- and runtime)
● is a declaration that usually binds all static TYPE CASTING
attributes. ● This is done to take advantage of certain
● Definition is basically the actual features of type hierarchies or type
implementation and memory location of a representations.
function and memory for the variable is ● It helps us to compute expressions
allocated during the definition of the containing variables of different data types.
variable.
Implicit conversion – coercion
TYPE SYSTEMS ● Also known as ‘automatic type conversion’.
Statically typed programming language
● Done by the compiler on its own, without
● compiler based.
any external trigger from the user.
● Type checking occurs during the
compilation of code. ● Generally, takes place when in an expression
● Once variable types are defined, these more than one data type is present. In such
cannot be changed into other data types. conditions type conversion (type promotion)
● This type of system is reliable if it does not takes place to avoid loss of data.
accept any programs that perform ● All the data types of the variables are
type-incorrect operations. upgraded to the data type of the variable
● Examples of this type are ABC, BCPL, , C/C++,
with largest data type this is called lossless
C#, F#, FORTRAN, JAVA, Pascal, Perl, Scala,
conversion
6DIPROGLANG

Explicit conversion - casting


● This process is also called type casting
and it is user defined. Here the user can
type cast the result to make it of a
specific data type. This returns what is
called lossy conversion.
● Weakly typed languages such as Python
and Ruby have lossy conversion.
TYPE COMPATIBILITY
● Concept defined when the issue of type
checking was introduced.
● The result of two variables being of
compatible types is that either one can have
its value assigned to the other.
Different type compatibility methods:
● Name compatibility
○ two variables can have compatible
types only if they are in either the
same declaration or in declarations
that use the same type name.
● Structure type compatibility
○ two variables have compatible types
if their types have identical
structures.
○ Most languages use combinations of
the different techniques
○ There are some variations of these
two methods
Characteristics of name type compatibility:
● Easy to implement
● Highly restrictive
Characteristics of Structure compatibility:
● More flexible
● More difficult to implement (comparison
of whole structures instead of names)

You might also like