Week 2
Week 2
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.
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.
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.
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: 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
The following are the differences between machine-level language and 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.
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.
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.
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.
The following are the differences between low-level language and high-level language:
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.
Debugging and maintenance are not easier Debugging and maintenance are easier in a
in a low-level language. high-level language.
Rubric
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.
TOTAL ___