0% found this document useful (0 votes)
30 views11 pages

Overview of Programming Languages

This document discusses the history and classification of programming languages. It covers early programming languages from the 1950s like Fortran and Lisp, as well as low-level languages like Assembly and machine language. It also discusses high-level languages and how they made programming easier by using clear English words. The document analyzes the differences between programming languages and how they have developed across generations from the 1950s to the 1960s with many important early languages introduced.

Uploaded by

Yasmeen Altuwati
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)
30 views11 pages

Overview of Programming Languages

This document discusses the history and classification of programming languages. It covers early programming languages from the 1950s like Fortran and Lisp, as well as low-level languages like Assembly and machine language. It also discusses high-level languages and how they made programming easier by using clear English words. The document analyzes the differences between programming languages and how they have developed across generations from the 1950s to the 1960s with many important early languages introduced.

Uploaded by

Yasmeen Altuwati
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

Libyan Academy

Academy of Graduate Studies School of Applied

Science and Engineering

Department of Electrical & Computer

Division of Information Technology

Supervised by:

Dr. Mustafa Aswad


Student work:

Yasmeen altuwati

2022-2023

]1[
Abstract

In this research, we presented the history of programming


languages, and through the research, we summarized the
following:

1- Classification of a programming language in terms of dealing


with devices There are many classifications of programming
languages, and perhaps the most important one is to determine
how close any language is to the way a computer understands
code, or the so-called (Machine Language). There are two types of
languages in this classification: Low Level Languages: These are
languages that are very close to the language of machines, such
as the C language, the Assembly language, and others. High Level
Languages: These are languages that move away from the
language of machines and approach our normal language… such
as Java, Python, JavaScript, and others.

2- Classification of programming languages in terms of how they


work This classification depends on the way the language deals
with instructions and converts them into binary codes for
computers to understand. There are two types of programming
languages in this classification: Compiled Programming
Languages:

-These languages translate instructions and convert them once


into code, and the programmer is responsible here for this
process. Languages like C, C++, C#, Go... are all compiled
languages, and they are widely used.

- Interpreted Programming Languages: These languages depend


on an intermediary or an interpreter to convert instructions into
codes that the computer can understand... and this process is not
for the programmer to be responsible for. Languages like Java
script and Python are interpreted languages. An exception in this
classification is Java, which can be one of two types depending on
the level of use…
]2[
Introduction

Programming is defined as the process of using logic to carry out


specific operations and functions in computers, and these logical
operations are implemented in specific programming languages,
which are a set of instructions and commands written in a specific
way to create a specific program, and directing it to the computer
for its implementation, and programming languages also organize
the communication of electronic devices with each other. Some,
such as robots and peripheral devices such as printers and other
types of other smart devices, also allow humans to communicate
with the machine. Although many programming languages
currently have nearly tens of thousands and more programming
languages of varying level and difficulty, each language has its
unique and distinctive structure and each language includes a
distinct set of its own keywords to build a particular program

The history of programming languages The emergence of


programming languages goes back more than 125 years before
the emergence of the computer itself. Where programming
languages appeared for the first time in some industrial uses, in
1801, the French scientist and merchant Joseph Merry Jacquard
invented (a knitting machine), it was adopted to control the
production of textiles by designing holes in a certain way on
different types of cards. So that the cards are changed to produce
different kinds of textiles.

Programming languages are divided into two basic levels:

 Low-level languages.
 High level languages.

Of course there is a big difference between these two levels in


the capabilities and ease of dealing with the computer. In

]3[
addition to the ease of learning and understanding the
language. Since higher level languages use specific English
words and familiar mathematical symbols, they are easier to
learn and understand.

Low-level languages The languages of this level are divided into


two parts:

 Machine language.
 Assembly language.

1- Machine language: It is the first language to appear, and it is the


language that the computer understands directly without an
intermediary. It has its own machine, and it requires extensive
knowledge of computer design, in addition to difficulty in detecting
errors. Which led to the development of this language into
assembly language.
2- Assembly language: It appeared in 1949. This language relies
on mnemonic shorthand symbols, i.e. abbreviations with a specific
linguistic connotation, such as add denotes plural, mov denotes
transfer, and so on. This made learning this language relatively
easier than machine language, in addition to the ease of detecting
and correcting errors. But the program in this language is compiled
and converted into machine language, by what is called the
assembler. This confirms that the computer does not deal directly
except with machine language. However, this language remains
difficult to learn, and it has drawbacks, the most prominent of which
is its connection to a machine, as each machine has its own
assembly language. By machine, here specifically the processor or
microprocessor.

High level programming languages.

These languages depend on clear English words such as print,


input, read, write, and the programmer was isolated from the
difficulty of delving into the maze of the internal design of the
computer, which made it easy to learn these languages and turn to
them to solve problems and scientific, commercial and other
applications. However, the implementation of the program in these
languages needs to detect errors and follow the instructions step
by step, through the so-called interpreter, and then translate it into
machine language through the so-called interpreter. It can be
considered the actual existence of the first programming language
]4[
developed by a small team led by John Backus at IBM. The first
issue of it was released in 1957. It is still the preferred language for
large-scale numerical calculations in science and engineering. IBM
released its revised version under the name FORTRAN II, and it
allowed programmers to create a set of functions and
subcommands, which encouraged the idea of reusing code. As for
the second language in the history of programming, it appeared
one year after the appearance of the first language and it was
called Lisp. It was invented by the scientist John McCarthy in 1958
AD. It is a programming language that was developed to facilitate
the processing of data strings, and it is usually used in the field of
artificial intelligence, and it is not It is still widely used. Then
followed the construction of multiple languages for programming in
the late twentieth century.

. The difference between programming languages. Programming


languages are not the same as many think, yet there are many
points of agreement between these languages.

1- Programming languages depend on mathematical algorithms.


2- All languages depend on having a code.
3- All languages are based on fixed steps for programming.

Among the most important differences between the well-known


programming languages:
1- The presence of auxiliary tools: Some programming
languages need a set of tools to help them, as they do not
work separately, especially the more developed and modern
languages. We find that these languages provide the tools
required for programming as an extension with it, while there
are other languages that are separate by themselves and do
not need auxiliary means.
2- The method of writing the code: The method of writing the
code differs from one language to another, although most
languages are similar in wording, but there are still things that
distinguish languages from others, especially in the way of
closing the code sentence, some of them may end with a
semicolon (;), while some are left without commas or
punctuation marks.
]5[
3- Programmers’ preferences: Each programmer prefers to deal
with a different language and sees it as the best for him, and
in many cases the programmer is forced to deal in a specific
language because of the nature of the program or application
that he designs, and the programmer is not supposed to
learn all the existing programming languages.

The development of languages across generations:

The fifties: In 1951, the scientist Maurice Wilkes invented the


regional assembly language. 1952 Autocode (a programming
language). 1954 Information Processing Language (Prepared for
Lisp). 1955 m Flumatic (it brought us to the COBOL language)
Then the scientist Grace Hopper invented the first assembler
(editor) and developed Flowmatic, and popularized the non-
machine-based programming languages. In 1957, the scientist
John Backus invented the Fortran language (the first compiler).
Then the scientist Bob Demmer invented the Komtrat language
(the Cobol bit) in 1957 AD. In 1958, the scientist John McCarthy
invented the Lisp language. In the same year, the language of
Algol 58 appeared, which was developed by the scientist John
Backus, who combined the design of Algol 58 and Algol 60. In
1959 AD, the Data Systems Languages Committee invented the
COBOL language. Then the RBJ language appeared.

The 1960s: APL was developed by Kennett Iverson in 1962. The


scientist helped Ole Johan Dahl invent the Simula language in
1962. In the same year, the Snowball language appeared, invented
by the scientist Ralph Griswold and his team. 1963 AD Unified
Programming Language (Prepared for C). Stanley Cohen at
Argonne National Laboratory invented a pub (computing
environment) in 1964. 1964 AD, BASIC language. In the same year
a single programming language appeared. 1966 A.D. Juniac Open
System. Martin Richards invented the Hybrid Basic Programming
Language (HBP) in 1967. In 1968, the world invented Seymour

]6[
Bayert Logo. In 1969, scientist Ken Thompson invented two B
languages, goo (prepared for C).

The Seventies: The Pascal language was invented by the scientist


Niklaus Wirth in the 1970s and was developed by Anders Hillsberg
after him. And in the same world invented the scientist Charles H.
Moore Language Forth. The scientist Dennis Ritchie invented the C
language in 1972. The scientist Alan Kay invented the Small Talk
language in 1972. 1972 AD Prolog language. The scientist Robin
Mills invented the M/L language in 1973. 1975 AD Scheme
(programming language). The year 1978 AD SQL language.

The 1980s: In 1980 AD, the C ++ language appeared and


developed by the scientist Bearn Strostrupp. The scientist Jan
Ashbia invented the language of Ida in 1983. In 1984 AD, the
rumor. The world was invented by Cliff Muller Mathlab in 1984. The
scientist Bertrand Mayer invented the Eiffel language in 1985. Si
Al-Kaini in 1986 AD. The scientist Joe Armstrong created the
Erlang language in 1986. Pearl appeared in 1987. 1988 AD TCL. In
1988 AD, the scientist Stephen Wolfram invented the Wolfram
language (as part of Matmatica and obtained a separate name in
2013 AD). FL appeared in 1989.

The 1990s: the Haskell language. The scientist Guido Gan


Rossum designed the Python language. In 1991, the Visual Basic
language appeared and was developed by Alan Cooper. Ruby was
created by Yukihiro Matsumoto in 1993. In the same year the Lua
language appeared. and the R language. In 1994, the common
Lisp object system. In 1995, Ida 95 language. Martin Odersky
contributed to the design of the Java language in 1995. The
scientist Anders Helsberg invented the Delphi language in 1995
AD. 1995 JavaScript. 1995 AD BHB. 1997 AD, Ripoll. 1999 AD
Language D.

A group of programming languages were invented to solve some,


if not all, of these problems. We will agree to describe these
languages as modern, as they were invented in the 21st century,
and as you will discover later, all these languages have common
concepts, and the grammatical structure of some of them is very

]7[
similar. Some common features between these languages: It is
desirable that variables be immutable. The presence of a data
pattern: Interface. Most of them check for Type Safety. In most of
these languages, the type of values returned by functions comes at
the end of the Trailing Return Type header. Some offer easy ways
to spawn processes to run concurrently. Some of them offer easy
methods for inter process communication (IPC) through what are
called channels. Many of them emphasize the functional style of
programming. Many of them require no semicolon at the end of the
code .and It has a beautiful and clear grammatical structure.

Popular Modern Programming Languages

Below we will list the most famous modern programming


languages, and we will review the basic features of each of them,
and how each language has implemented the concept of
concurrency, which is a common feature among them all.

In 2000 Based on C++ and Java, the C# programming language


was developed by Microsoft and introduced in June 2000. C#
became an ISO standard in 2003.

Scala

This language first appeared in the first decade of this century, and
is one of the oldest modern programming languages, and it is an
academic product invented by Martin Odersky while he was
working at the Ecole Polytechnique Polytechnique Fédérale de
Lausanne (EPFL), in Switzerland, where the first version of it was
released. year 2004.
Scala combines the object-oriented programming (OOP) paradigm
and the functional programming paradigm. Also, applications and
programs written in Scala are implemented by the JVM, and
therefore are independent of the platform they are running on.
One of the first users of Scala was Twitter in 2009.

In 2005 Don Syme developed the F# programming language and


Microsoft first introduced it in 2005.

]8[
2007 Rich Hickey developed the Clojure programming language
and released the first version in 2007. 2008 Introduced in 2008,
Nim is a programming language used to develop programs that
require strict restrictions on how system memory is used. 2008 The
object-oriented programming language Reia was introduced in
2008.

Golang – Go

Google designed the Go language for internal use, as it deals


largely with distributed systems. It's a particularly interesting
language because one of its designers is the folklorist computing
hero Ken Thompson, who founded the Unix operating system in
the early 1970s while working at Bell Labs in America. Go was
announced in 2009, and since its launch it has been an open
source project. The designers indicated that one of their
motivations for designing it was their shared frustrations with the
inherent complexity of C++. It is also considered as C language in
the twenty-first century, it is a language that is compiled, that is, it
has a compiler, not an interpreter, and the memory is managed in
it dynamically. One of its strengths is its handling of channel
synchronization and Go functionality.

Rust

is a proprietary system programming language released by Mozilla


Research as a safer and more efficient alternative to C/C++.
Launched as an open source project in 2010, the language's
primary designer is Graydon Hoare, who later moved to Apple and
became part of the Swift language team. The stated goals of Rust
are security, speed, and concurrency. Of these three objectives,
Rust was most strict with security by its application of the principle
of ownership. it was officially released as version 1.0.0 alpha on
January 9, 2015.

2010 The multi-paradigm CoffeeScript programming language,


which can be compiled into JavaScript, was officially released in
2010.

2011 Google developed the open source web-based Dart


programming language, and it was presented to the public in
October 2011. Julia was developed by Jeff Bezanson, Alan

]9[
Edelman, Stefan Karpinski, and Viral B. Shah and released in
2012. It is a high-level programming language used in scientific
computing.

. 2014 Babel is a general purpose programming language that was


developed in 2014 and is used to create software to conserve
battery life and system resources on devices.

Kotlin

Until recently, Kotlin was hardly known within the programming


community, named after the island of Kotlin near Saint Petersburg,
designed by the famous Jet Brains company responsible for
products such as IntelliJ IDEA, PhpStorm and PyCharm. Kotlin is
like Scala; Programs written in it are executed by the JVM. It
received a big boost in 2017 at Google I/O, when it was announced
that it would receive top-notch support for Android.

Swift

Designed by Apple, it is an alternative language to Objective C for


building Apple applications. It was launched during the Worldwide
Developers Conference in 2014, and a year later it was launched
as an open source project, and the design team leader, Chris
Lattner, was one of the lead designers on the LLVM project. Code
written in Swift is very similar to code written in Rust. it helps create
software and apps for iOS, macOS, Apple Watch, and AppleTV.

]11[
In the graph you can see the top 10 languages: JavaScript, Java, Python, PHP, C++, C#,
TypeScript, Shell, C, Ruby.

Reference:

1-Programming", [Link],13-5-2020, Retrieved 11-


24-2020. Edited.
2- "Programming Language", [Link],9-23-2011, Retrieved
11-24-2020. Edited.
3-History of computer programming [Link]
Retrieved 24-5-2020. Edited.
4- .‫ دمحم أديب قطان‬:‫ المؤلف‬,‫كتاب لمحة عن تاريخ لغات البرمجة‬
5- Sixty Years of Software Development Life Cycle Models
[Link] Publisher: IEEE.

]11[

Common questions

Powered by AI

Early programming languages like FORTRAN and Lisp introduced foundational concepts such as procedural programming and symbolic computation, respectively, which have significantly influenced modern programming paradigms. FORTRAN's use of functions and subroutines paved the way for modular programming, while Lisp's handling of symbolic expressions contributed to the development of functional programming paradigms. These early successes shaped design philosophies and inspired subsequent languages like C for imperative programming and further developments in languages oriented towards object-oriented and functional paradigms .

Low-level programming languages include machine and assembly languages, which are closer to the way computers understand code. Machine language is understood directly by the computer without needing translation, while assembly language uses mnemonic shorthand symbols but still requires conversion to machine language by an assembler. High-level languages, on the other hand, use English-like syntax and abstract away the complexities of the machine's architecture, making them easier to learn and use for creating applications .

The evolution of programming languages began with machine language and assembly language, which required intricate knowledge of computer design. This complexity led to the development of higher-level languages like FORTRAN and Lisp in the 1950s, allowing for easier programming through more English-like syntax. FORTRAN, developed by John Backus at IBM in 1957, was crucial for numerical calculations in science and engineering, while Lisp, developed in 1958 by John McCarthy, made significant contributions in artificial intelligence . These languages laid the foundation for modern languages by introducing concepts like compilers and reusable code, facilitating more complex and diverse computing applications.

Programming languages allow humans to communicate with machines by providing a structured set of instructions and commands that a computer can interpret and execute. These languages control machinery and electronic devices by translating high-level instructions into machine code that the device's processor understands. For example, the earliest programming applications were used to control textile production through punched cards in knitting machines, exemplifying how languages permit machines to perform complex tasks based on human directives .

Go and Rust were introduced to address the complexities and inefficiencies in system-level programming that languages like C++ presented. Go simplifies concurrency management with intuitive syntax and garbage collection, reducing runtime errors associated with manual memory management common in C++. Rust focuses on memory safety without a garbage collector by enforcing strict ownership rules, preventing common bugs such as null pointer dereferencing and data races. These enhancements help developers build secure, efficient, and concurrently executing programs without the overhead and complexity of C++ .

Modern programming languages like Scala and Kotlin are designed to blend object-oriented and functional programming paradigms. Scala supports object-oriented features such as inheritance and encapsulation alongside higher-order functions and immutability typical of functional programming. Kotlin, designed for Android development, also supports functional constructs like lambda expressions and type inference, promoting code reliability and maintainability. These hybrid languages offer developers more flexible paradigms for addressing different types of problems within a single language framework .

Auxiliary tools in programming languages offer extra functionalities such as debugging, code structuring, and library management, enhancing the efficiency and capabilities of programming tasks. Modern languages often come with integrated development environments (IDEs) and extension libraries that allow for more robust development. Some languages, like Python, offer a comprehensive set of libraries for various applications, while others, are supported by powerful IDEs that streamline the development process. The presence and dependency on these tools can vary, influencing how programming languages are learned and applied .

Advancements in modern programming languages, particularly those focusing on concurrency like Go and Rust, have significantly improved the management of concurrent processes. Go provides goroutines and channels for efficient process communication and synchronization, reducing complexity in building concurrent systems. Similarly, Rust's ownership system ensures data race safety without sacrificing performance through its concurrency model. These languages enable the building of scalable and efficient applications by abstracting and optimizing concurrent programming complexities .

Compiled programming languages, such as C, C++, and Go, translate the entire source code into machine code before execution, often resulting in more efficient and faster runtime execution. However, they require recompilation after code modifications, which can be time-consuming. Interpreted languages, like Python and JavaScript, translate code into machine instructions on-the-fly via an interpreter, which simplifies testing and debugging but can result in slower execution compared to compiled languages .

In the 21st century, languages like Julia and Python have become integral to scientific computing due to their ability to handle large datasets and perform complex numerical operations efficiently. Julia is specifically designed for high-performance and numerical computations, offering a balance between execution speed and ease of use. Python, with its extensive libraries like NumPy and SciPy, provides a versatile environment for data analysis and modeling. These languages have expanded scientific research capabilities by providing robust tools for prototyping and deploying scalable scientific applications .

You might also like