0% found this document useful (0 votes)
26 views

Week 2

Uploaded by

Jeric Avengoza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Week 2

Uploaded by

Jeric Avengoza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Lesson 1.

Overview of Programming Languages


INTRODUCTION

Programming Languages are important for software technologies. It is a basic one, without it
programming could not do a thing about software. It is a key factor to every software.
Programming language is the heart of software. Without programming we cannot make
many applications and software. Programming Language isa key factor of software as well
as embedded systems. Without programming language, we cannot communicate with
machines or systems. Systems only know machine code. Machine codes mean some set of
series of numbers. Machine code we can call bits.

Humans only know high level languages but machines do not know high level languages.
Humans and machine could not communicate directly. We need one intermediate because
humans could not understand machine languages like machines could not understand high
level languages.
There are different types of programming languages that are currently trendy. This article
explains the importance of programming languages.

II. PRE-COMPETENCY CHECKLIST

If you have questions, don’t hesitate to ask for assistance.

This are the pre-competency checklist required for this module


Understand the Overview of Programming Languages

III. LEARNING RESOURCES

Necessary details for discussion were included in the hand-outs. Following are supplementary
resources available to access having this purpose of further understanding of the unit.

LR1 Online Resources Access Link:


[1]
https://devskiller.com/history-of-
History of programming programming-languages/
[2]
http://www.tutorialsspace.com/Programm
Characteristic of A Good Programming
ing-Languages/02-Characteristics-Of-A-
Language
Good-Programming-Languages.aspx
[3]
https://www.javatpoint.com/classification-
Classification of Languages
of-programming-languages

IV EXPLORE
This module contains offline/module and online learning activities for the students to
complete. You must be going over the resources, read, study, and understand to
understand the unit.

Note:
▪ LR1 are the resources accessible online for further understanding of the unit and
support discussion found in your hands-out.

Integrative Programming and Technologies 1 1


V. DISCUSSION BOARD

Programming Languages LESSON DISCUSSION


The first programming language
Did you know that the first programming language was invented way back in 1843? Ada
Lovelace came up with the first-ever machine algorithm for an early computing machine that
she wrote down on a piece of paper because no computers existed at the time!
Programming languages have obviously come a long way since then but in order to
understand the history of programming languages, one must first acknowledge their origin.

History of programming languages: A timeline


Listed below is a timeline of the history of programming languages. The first known
programming languages were complicated machine codes that were manually inputted into
early computing machines. As you’ll discover, computer programming developed quickly
from machine codes to fully automated human-readable code.

1843: Ada Lovelace’s machine algorithm


Ada Lovelace invents the first-ever machine algorithm for Charles Babbage’s Difference
Machine that lays the foundation for all programming languages.

1944-45: Plankalkül
Somewhere between 1944-45, Konrad Zuse developed the first ‘real’ programming language
called Plankalkül (Plan Calculus). Zeus’s language (among other things) allowed for the
creations of procedures, which stored chunks of code that could be invoked over and over to
perform routine operations.

1949: Assembly Language


Assembly language was used in the Electronic Delay Storage Automatic
Calculator (EDSAC). Assembly language was a type of low-level programming language that
simplified the language of machine code. In other words, the specific instructions necessary
to operate a computer.

1949: Shortcode
Shortcode (or Short-order code), was the first High-Level Language (HLL) suggested by
John McCauley in 1949. However, it was William Schmitt who implemented it for the BINAC
computer the same year and for the UNIVAC in 1950.

1952: Autocode
Autocode was a general term used for a family of programming languages. First developed
by Alick Glennie for the Mark 1 computer at the University of Manchester, Autocode was
the first-ever compiled language to be implemented meaning that it can be translated directly
into machine code using a program called a compiler. Autocode was used on the Ferranti
Pegasus and Sirius early computing machines in addition to the Mark 1.

1957: FORTRAN
FORmula TRANslation or FORTRAN was created by John Backus and is considered to be
the oldest programming language in use today. The programming language was created for

Integrative Programming and Technologies 1 2


high-level scientific, mathematical, and statistical computations. FORTRAN is still in use
today in some of the world’s most advanced supercomputers.

1958: ALGOL (Algorithmic Language)


Algorithmic language or ALGOL was created by a joint committee of American and
European computer scientists. ALGOL served as the starting point for the development of
some of the most important programming languages including Pascal, C, C++, and Java.

1958: LISP (List Processor)


List processor or LISP was invented by John McCarthy at the Massachusetts Institue of
Technology (MIT). Originally purposed for artificial intelligence, LISP is one of the oldest
programming languages still in use today and can be used in the place of Ruby or Python.
Companies such as Acceleration, Boeing, and Genworks are still using LISP in their tech
stacks.

1959: COBOL (Common Business Oriented Language)


Common Business Oriented Language (COBOL), is the programming language behind
many credit card processors, ATMs, telephone and cell calls, hospital signals, and traffic
signals systems (just to name a few). The development of the language was led by Dr.
Grace Murray Hopper and was designed so that it could run on all brands and types of
computers. COBOL is still used to this day primarily for banking and gamification systems.

1964: BASIC (Beginner’s All-Purpose Symbolic Instruction Code)


Beginners All-Purpose Symbolic Instruction Code or BASIC was developed by a group of
students at Dartmouth College. The language was written for students who did not have a
strong understanding of mathematics or computers. The language was developed further by
Microsoft founders Bill Gates and Paul Allen and became the first marketable product of the
company.

1970: PASCAL
Named after the French mathematician Blaise Pascal, Niklaus Wirth developed the
programming language in his honor. It was developed as a learning tool for computer
programming which meant it was easy to learn. It was favored by Apple in the company’s
early days, because of its ease of use and power.

1972: Smalltalk
Developed at the Xerox Palo Alto Research Centre by Alan Kay, Adele Goldberg, and Dan
Ingalls, Smalltalk allowed for computer programmers to modify code on the fly. It introduced
a variety of programming language aspects that are visible languages of today such as
Python, Java, and Ruby. Companies such as Leafily, Logitech, and CrowdStrike state they
use Smalltalk in their tech stacks.

1972: C
Developed by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix
operating system. It was called C because it was based on an earlier language called ‘B’.
Many of the current leading languages are derivatives of C including; C#, Java, JavaScript,
Perl, PHP, and Python. It also has been/still being used by huge companies like Google,
Facebook, and Apple.

Integrative Programming and Technologies 1 3


1972: SQL (SEQUEL at the time)
SQL was first developed by IBM researchers Raymond Boyce and Donald Chamberlain.
SEQUEL (as it was referred to at the time), is used for viewing and changing information that
is stored in databases. Nowadays the language is an acronym – SQL, which stands for
Structured Query Language. There are a plethora of companies that use SQL and some of
them include Microsoft and Accenture.

1980/81: Ada
Ada was originally designed by a team led by Jean Ichbiah of CUU Honeywell Bull under
contract to the United States Department of Defense. Named after the mid-19th-century
mathematician Ada Lovelace, Ada is a structured, statically typed, imperative, wide-
spectrum, and object-oriented high-level programming language. Ada was extended from
other popular programming languages at the time such as Pascal. Ada is used for air-traffic
management systems in countries such as Australia, Belgium, and Germany as well as a
host of other transport and space projects.

1983: C++
Bjarne Stroustrup modified the C language at the Bell Labs, C++ is an extension of C with
enhancements such as classes, virtual functions, and templates. It has been listed in the top
10 programming languages since 1986 and received Hall of Fame status in 2003. C++ is
used in MS Office, Adobe Photoshop, game engines, and other high-performance software.

1987: Perl
Perl was created by Larry Wall and is a general-purpose, high-level programming language.
It was originally designed as a scripting language designed for text editing but nowadays it’s
widely used for many purposes such as CGI, database applications, system administration,
network programming, and graphic programming.

1990: Haskell
Haskell is a general-purpose programming language named after the American logician and
mathematician Haskell Brooks Curry. It is a purely functional programming language
meaning it’s primarily mathematical. It’s used across multiple industries particularly those
that deal with complicated calculations, records, and number-crunching. Like many other
programming languages from this era, it is not overly common to see Haskell in use for well-
known applications. With that said, the programming language has been used to write a
number of games one of which is Nikki and the Robots.

1991: Python
Named after the British comedy troupe ‘Monty Python’, Python was developed by Guido Van
Rossum. It is a general-purpose, high-level programming language created to support a
variety of programming styles and be fun to use (a number of the tutorials, samples, and
instructions often contain Monty Python references). Python is, to this day, one of the most
popular programming languages in the world is used by companies such as Google, yahoo,
and Spotify.

1991: Visual Basic


Developed by Microsoft, Visual Basic allows programmers to utilize a drag-and-drop style of
choosing and changing pre-selected chunks of code through a graphical user interface

Integrative Programming and Technologies 1 4


(GUI). The language is not overly used these days however Microsoft has used portions
Visual Basic to a number of their applications like Word, Excel, and Access.

1993: Ruby
Created by Yukihiro Matsumoto, Ruby is an interpreted high-level programming language. A
teaching language which was influenced by Perl, Ada, Lisp, and Smalltalk – among others.
Ruby’s primary uses are for web applications development and Ruby on Rails. Twitter, Hulu,
and Groupon are some well-known examples of companies that use Ruby.

1995: Java
Java is a general-purpose, high-level language created by James Gosling for an interactive
TV project. It has cross-platform functionality and is consistently among the top of the world’s
most popular programming languages. Java can be found everywhere, from computers to
smartphones to parking meters.

1995: PHP
Formerly known as ‘Personal Home Page’ which now stands for ‘Hypertext
Preprocessor’, PHP was developed by Rasmus Lerdorf. Its primary uses include building
and maintaining dynamic web pages, as well as server-side development. Some of the
biggest companies from across the globe use PHP including Facebook, Wikipedia, Digg,
WordPress, and Joomla.

1995: JavaScript
JavaScript was created by Brendan Eich, this language is primarily used for dynamic web
development, PDF documents, web browsers, and desktop widgets. Almost every major
website uses JavaScript. Gmail, Adobe Photoshop, and Mozilla Firefox include some well-
known examples.

2000: C#
Developed at Microsoft with the hope of combining the computing ability of C++ with the
simplicity of Visual Basic, C# is based on C++ and shares many similarities with Java. The
language is used in almost all Microsoft products and is seen primarily in developing desktop
applications.

2003: Scala
Developed by Martin Odersky, Scala which combines mathematical functional programming
and organized object-oriented programming. Scala’s compatibility with Java makes it helpful
with Android development. Linkedin, Twitter, Foursquare, and Netflix are just a few
examples of the many companies that use Scala in their tech stacks.

2003: Groovy
Derived from Java, Groovy was developed by James Strachan and Bob McWhirter. The
language improves productivity because of its succinct and easy to learn. Some well-known
companies that are using Groovy in their tech stacks are Starbucks, Transferwise, and
Craftbase.

Integrative Programming and Technologies 1 5


2009: Go
Go was developed by Google to address issues that occur due to large software systems.
Due to its simple and modern structure, Go has gained popularity among some of the largest
tech companies around the world such as Google, Uber, Twitch, and Dropbox.

2014: Swift
Developed by Apple as a replacement for C, C++, and Objective-C, Swift was developed
with the intention to be easier than the aforementioned languages and allow less room for
error. Swift’s versatility means it can be used for desktop, mobile, and cloud applications.
Leading language app ‘Duolingo’ launched a new app that was written in Swift.

The history of programming languages is fascinating. Who would have thought that an
algorithm from the mid-19th century would pave the way for the technology-driven society
we live in today. From early machine codes to the sophisticated human-readable code that
powers our favorite technologies today, programming languages have come a long way.
What’s for certain, computer programming will continue to develop as it has done for the
past 150 years and it’s exciting to see what the future brings.

Characteristic of A Good Programming Language


There are various factors, why the programmers prefer one language over the another.
And some of very good characteristics of a good programming language are:

1) Clarity, Simplicity And Unity: A Programming language provides both a conceptual


framework for Algorithm planning and means of expressing them. It should provide a clear,
simple and unified set of concepts that can be used as primitives in developing algorithms.
It should have
✓ It has minimum number of different concepts
✓ with Rules for their combina-tion being
✓ simple and regular.
▪ This attribute is called conceptual integrity.

Integrative Programming and Technologies 1 6


2) Orthogonality: It is one of the most important feature of PL orthogonality is the property
that means " Changing A does not change B".

If I take Real world example of an orthogonal system Would be a radio, where changing
the station does not change the volume and vice versa.

When the features of a language are orthogonal, language is easier to


learn and programs are easier to write because only few exceptions and special cases
to be remembered.

3) Support for Abstraction:- There is always found that a substantial gap remaining
between the abstract data structure and operations that characterize the solution to a
problem and their particular data structure and operations built into a language.

4) Programming Environment: An appropriate programming environment adds an extra


utility and make language to be implemented easily like:

The availability of- Reliable- Efficient - Well documentation


Speeding up creation and testing by-special Editors- testing packages
Facility- Maintaining and Modifying- Multi Version of program software product.

5) Ease of program verification:- Reusability:

The reusability of program written in a language is always a central concern. A program is


checked by various testing technique like

Formal verification method Desk checking Input output test checking.


We verify the program by many more techniques. A language that makes program
verification difficult maybe far more troublesome to use. Simplicity of semantic and
syntactic structure is a primary aspect that tends to simplify program verification.

6) Portability of programs: Programming language should be portable means it should be


easy to transfer a program from which they are developed to the other computer.
A program whose definition is independent of features of a Particular machine forms can
only support Portability. Example: Ada, FORTRAN, C, c++, Java.

Criteria in a good language design


• Readability – understand and comprehend a computation easily and accurately.
• Write-ability – express a computation clearly, correctly, concisely, and quickly.
• Reliability – assures a program will not behave in unexpected or disastrous ways.
• Orthogonality – A relatively small set of primitive constructs can be combined in a
relatively small number of ways.

Integrative Programming and Technologies 1 7


– Every possible combination is legal
– Lack of orthogonality leads to exceptions to rules Criteria (Continued)
• Uniformity – similar features should look similar and behave similar.
• Maintainability – errors can be found and corrected and new features added easily.
• Generality – avoid special cases in the availability or use of constructs and by combining
closely related constructs into a single more general one.
• Extensibility – provide some general mechanism for the user to add new constructs to a
language.
• Standardability – allow programs to be transported from one computer to another without
significant change in language structure.
• Implementability – ensure a translator or interpreter can be written.

What is a programming language?


A programming language defines a set of instructions that are compiled together to perform a
specific task by the CPU (Central Processing Unit). The programming language mainly refers
to high-level languages such as C, C++, Pascal, Ada, COBOL, etc.

Each programming language contains a unique set of keywords and syntax, which are used
to create a set of instructions. Thousands of programming languages have been developed
till now, but each language has its specific purpose. These languages vary in the level of
abstraction they provide from the hardware. Some programming languages provide less or no
abstraction while some provide higher abstraction. Based on the levels of abstraction, they
can be classified into two categories:

o Low-level language
o High-level language

The image which is given below describes the abstraction level from hardware. As we can
observe from the below image that the machine language provides no abstraction, assembly
language provides less abstraction whereas high-level language provides a higher level of
abstraction.

Integrative Programming and Technologies 1 8


Low-level language

The low-level language is a programming language that provides no abstraction from the
hardware, and it is represented in 0 or 1 forms, which are the machine instructions. The
languages that come under this category are the Machine level language and Assembly
language.

Machine-level language

The machine-level language is a language that consists of a set of instructions that are in the
binary form 0 or 1. As we know that computers can understand only machine instructions,
which are in binary digits, i.e., 0 and 1, so the instructions given to the computer can be only
in binary codes. Creating a program in a machine-level language is a very difficult task as it is
not easy for the programmers to write the program in machine instructions. It is error-prone as
it is not easy to understand, and its maintenance is also very high. A machine-level language
is not portable as each computer has its machine instructions, so if we write a program in one
computer will no longer be valid in another computer.

The different processor architectures use different machine codes, for example, a PowerPC
processor contains RISC architecture, which requires different code than intel x86 processor,
which has a CISC architecture.

Integrative Programming and Technologies 1 9


Assembly Language

The assembly language contains some human-readable commands such as mov, add, sub,
etc. The problems which we were facing in machine-level language are reduced to some
extent by using an extended form of machine-level language known as assembly language.
Since assembly language instructions are written in English words like mov, add, sub, so it is
easier to write and understand.

As we know that computers can only understand the machine-level instructions, so we require
a translator that converts the assembly code into machine code. The translator used for
translating the code is known as an assembler.

The assembly language code is not portable because the data is stored in computer registers,
and the computer has to know the different sets of registers.

The assembly code is not faster than machine code because the assembly language comes
above the machine language in the hierarchy, so it means that assembly language has some
abstraction from the hardware while machine language has zero abstraction.

Differences between Machine-Level language and Assembly language

The following are the differences between machine-level language and assembly language:

Machine-level language Assembly language

The machine-level language comes at the lowest The assembly language comes above the
level in the hierarchy, so it has zero abstraction machine language means that it has less
level from the hardware. abstraction level from the hardware.

It cannot be easily understood by humans. It is easy to read, write, and maintain.

The machine-level language is written in binary The assembly language is written in simple
digits, i.e., 0 and 1. English language, so it is easily understandable
by the users.

It does not require any translator as the machine In assembly language, the assembler is used to
code is directly executed by the computer. convert the assembly code into machine code.

It is a first-generation programming language. It is a second-generation programming language.

High-Level Language

The high-level language is a programming language that allows a programmer to write the
programs which are independent of a particular type of computer. The high-level languages
are considered as high-level because they are closer to human languages than machine-level
languages.

When writing a program in a high-level language, then the whole attention needs to be paid
to the logic of the problem.

A compiler is required to translate a high-level language into a low-level language.

Integrative Programming and Technologies 1 10


Advantages of a high-level language

o The high-level language is easy to read, write, and maintain as it is written in English
like words.
o The high-level languages are designed to overcome the limitation of low-level
language, i.e., portability. The high-level language is portable; i.e., these languages
are machine-independent.

Differences between Low-Level language and High-Level language

The following are the differences between low-level language and high-level language:

Low-level language High-level language

It is a machine-friendly language, i.e., the It is a user-friendly language as this language


computer understands the machine is written in simple English words, which can
language, which is represented in 0 or 1. be easily understood by humans.

The low-level language takes more time to It executes at a faster pace.


execute.

It requires the assembler to convert the It requires the compiler to convert the high-
assembly code into machine code. level language instructions into machine code.

The machine code cannot run on all The high-level code can run all the platforms,
machines, so it is not a portable language. so it is a portable language.

It is memory efficient. It is less memory efficient.

Debugging and maintenance are not easier Debugging and maintenance are easier in a
in a low-level language. high-level language.

Integrative Programming and Technologies 1 11


VI. POST COMPETENCY
Evaluation 1: Create a timetable of the history of Computer Programming Languages.
Submit your file output in the VLP.

Rubric

Criteria Beginning Developing Acceptable Exemplary


(75-82) (83-89) (90-94) (94-100)

Student spent
Student spent an
Adequate Student spent too Student spent too an adequate
adequate amount
Time Spent much time and/or much time and/or amount of time
of time on activity ___
on Activity too little time on too little time on on activity to
to ensure the best
entire activity. parts of activity. ensure good
results.
results.
Student put a Student put a
Student put little Student put little
Effort good amount of great deal of
to no effort effort towards ___
effort towards effort towards
towards activity. activity.
activity. activity.
Student Student
Student Student
Completion completed less completed
completed about completed all of
of Task than 1/2 of the about 80% of ___
1/2 of the activity the activity on the
activity on the due the activity on
on the due date. due date.
date. the due date.

Responses and Responses and Responses and


Reasonable Responses and
information given information information given
Response information given
are entirely given are are very
and are unreasonable ___
unreasonable reasonable reasonable
Information in some areas of
throughout the throughout most throughout all of
the activity.
activity. of the activity. the activity.

Neatness, Responses and Responses and Responses and Responses and


Readability, information given information given information information given
and are entirely are given are neat/ are
Legibility/ incomprehensible incomprehensible readable/ comprehensive ___
Over-all and illegible and illegible legible /readable/ legible
Impact throughout the throughout most throughout most all throughout the
activity. of the activity. of the activity. activity.

TOTAL ___

Integrative Programming and Technologies 1 12

You might also like