An overview of computer programming languages: A fundamental piece of knowledge for humanity

 

Shaik Afifa Fathima, Viswanath Gudipati, Gurajala Keerthi,

Shaik Sulthana Taz, Pasupula Pavani, Neeluri Pallavi, Chilamakuri Geethanjali

Department of Computer Science Engineering, Anantha Lakskmi Institute of Technological Sciences, Anantapur-515001, AP, India.

*Corresponding Author E-mail: afifaanantapur@gmail.com

 

ABSTRACT:

The major goal of this review is to standardise the programming languages that are useful for controlling the behaviour of machines on computers. Syntax and semantic norms are defined in programming languages, just as they are in natural languages. Over a hundred thousand programming languages exist, with new ones appearing every year. Few languages ever gain widespread adoption, yet talented programmers may use dozens of languages over the course of their careers. The authors looked at the most prominent standized programming languages' runtime performance, memory utilisation, applications, and key pros and drawbacks in this review.

 

KEYWORDS: Computer, generation, language, program, symbol.

 


INTRODUCTION:

A programming language (PL) is a notational framework for describing computation that is both machine and human understandable. A programming language is a tool for constructing models that can be executed to solve a certain set of issues1.  A programming language (PL) is a set of instructions that inform a computer how to do certain tasks. A PL is a set of rules for communicating an algorithm. PL provides a linguistic foundation for describing computations2.

 

People speak English as if it were their first tongue. There are words, symbols, and grammatical rules to be found. A programming language consists of words, symbols, and grammar rules. The grammatical rules are referred to as syntax. Every programming language has its own set of syntactic rules3.

 

As new approaches for building programming languages have become accessible, they have evolved over time. The earliest programming languages were developed in the 1950s. Since then, thousands of new languages have been developed, with different programming languages appropriate for different types of projects4.

 

Levels of PL

The levels of PL are described5 in table 1.

 

Table 1: Levels of computer programmes and their example

Level of Program

Example

High-level program

Class Triangle {. . .float surface() return b*h/2;}

Low-level program

 

LOAD r1,b

LOAD r2,h

MUL r1,r2

DIV r1,#2

RET RET

Executable Machine code

00010010010001010010010011101100

10101101001...

Types of PL

·         First Generation  Languages

·         Second Generation Languages

·         Third Generation Languages

·         Fourth Generation Languages

·         Fifth Generation Languages

 

First Generation Languages (1GL):

It's known as "machine language." It is made up of Operands and Operation Codes (for example, addition and subtraction) (Viz., data to be processed). Machine language is machine-dependent since it is the only language that the computer understands. It's incredibly efficient code, but it's also very difficult to write6.

 

Second generation language (2GL):

"Assembly languages" is another name for it. Symbolic operation codes took the place of binary operation codes in this case. 2GL had to be "assembled" before it could be run by the computer. Each assembly language command is converted into a single machine language command. 2GL is a code that is both efficient and simple to write7.

 

Third generation language (3GL):

It has a stronger resemblance to English, but with the addition of basic mathematical notation. Source code programmes must be translated into machine language programmes, which are referred to as "object code" in this scenario. The translation of source code to object code is performed by a compiler, which is a machine language system software. Compilation is an alternative to interpretation, which is executed by a system software known as an interpreter8.

E.g., FORTRAN, COBOL, C and C++, Visual Basic.

 

Fourth generation language (4GL):

It's a high-level language (4GL) that completes a task with fewer instructions than a 3GL. Databases use query languages, report generators, Form designers, and application generators. 4GL refers to any computer programming language that is part of a group of languages envisioned as a step ahead from 3GL. Each each generation of programming languages aims to give a higher level of abstraction of internal computer hardware specifics, resulting in a language that is more programmer-friendly, powerful, and adaptable. While the definition of 4GL has changed over time, it is defined by the ability to handle large volumes of data at once rather than just bits and bytes. Database management, report production, mathematical optimization, GUI (graphical user interface) development, and online development may all be supported by 4GL languages. According to some academics, 4GLs are a subset of domain-specific languages9.

 

Fifth generation language (5GL):

Natural language programmes may generally be translated and performed by a computer without the user having to do anything other than ask a question, despite the lack of a definite description at this moment. It has limited functioning at the moment10.

5GL is utilised to have the computer handle an issue without the need for a programmer, while 4GL is used to construct specialised programmes. Instead of worrying about how to solve problems using a routine or algorithm, the user can focus on what problems need to be solved and what conditions need to be met. 5GL is largely used in artificial intelligence research.

E.g., OPS5 (Official Production System version 5) and Mercury

 

5GL was seen as the way of the future in the 1980s, with some predicting that they would eventually replace procedural programming with constraint-based programming for all jobs that could be defined as a set of logical constraints11.

 

Principal paradigms:

·         Imperative Programming (C)

·         Object-Oriented Programming (C++)

·         Logic/Declarative Programming (Prolog)

·         Functional/Applicative Programming (Lisp)

 

Classification of Program languages:

PL are classified into two broad groups, i.e., traditional programming languages and object-oriented languages12.

 

Traditional programming languages:

These comprise of sequences of instructions and another is First, second and some 3GL 13-16.

 

Fortran:

It is named after “formula Translation” that was developed at IBM (International Business Machines Corporation) in the mid-1950s. Scientists and engineers created it for scientific and mathematical applications.

 

Cobol:

It is based on the Common Business Oriented Language, which was created in 1959.It was designed to be common to many different computers. It is most commonly utilised in corporate applications.

 

Basic:

It is a Beginner’s All-purpose Symbolic Instruction Code that was developed at Dartmouth College in the mid-1960s. It was created as a simple programming language for students to use to create programmes that they could interact with via terminals.

 

Bell Laboratories invented it in the early 1970s. It has 3GL features and enables assembly language control and efficiency. It's frequently used in system programmes. UNIX is written in the C programming language.

 

Object-oriented languages:

Objects are created rather than sequences of instructions, and some third-, fourth-, and fifth-generation languages are employed.

 

Simula:

It was the first object-oriented language developed by Ole Johan Dahl in the 1960s.

 

Smalltalk:

Xerox created the first entirely object-oriented language in the mid-1970s. On some PCs, it is still in use.

 

C++

It's a C-like language with a few extra features. It's a popular tool for creating system and application software. Visual programming tools make it simple to create graphical user interfaces.

 

Java:

It's an object-oriented language that's comparable to C++ but without many of C++'s flaws. It enables a web page developer to create applets, which are browser-based programmes for applications. The goal of JAVA developers is for the language to be machine, platform, and operating system agnostic.

 

Special Programming languages:

 

Scripting Languages:

These include JavaScript and VBScript; Php and ASP; Perl and Python

 

Command Languages:

There are three of them: sh, csh, and bash.

 

Text processing Languages:

This includes LaTex, and PostScript.

 

HTML:

It is expanded as the HyperText Mark-up Language. It is used on the Internet and the World Wide Web (WWW). In order to indicate how the page should be formatted the web page developer inserts short codes called “tags into the page.

XML:

Extensible Mark-up Language is the name given to it once it was enlarged. It is a language that is used to define other languages.

 

Purpose for program languages:

In many ways, learning to speak and use a programming language is akin to learning to speak a human language when it comes to the mechanics of the process. In both sorts of languages, new vocabulary, syntax, and semantics must be learned (new words, sentence structure and meaning). Both of these languages take a lot of practise to master. The lack of ambiguity and vagueness in computer languages distinguishes them. Consider the following17 for a better understanding.

·         In English sentences, such as: I saw a man with a microscope (Who had the microscope?) or Take a pinch of salt (How much is a pinch?)

·         In a programming language, a sentence either means one thing or it means nothing.

 

Previously, computers were more expensive than programmers (in terms of run time performance). And today, in the life cycle (human) cost, ease of design, coding, debugging, maintenance, and reusability are increasingly essential.

 

Criteria for a good language:

The criteria for a good computer program language are as follows18-20.

 

·         Writability:

The ability for a programmer to represent a computation explicitly, correctly, concisely, and swiftly using a language.

 

·         Readability:

The ability of a language to allow a programmer to simply and accurately understand and comprehend the nature of a computation.

 

·         Orthogonality:

The quality of a language is determined by how few limits it has and how easily it can be combined in any meaningful way.

 

·         Reliability:

A language's ability to ensure that a programme will not behave in unexpected or disastrous ways during execution.

 

·         Maintainability: It's possible to find and improve the quality of a language that makes it easier to make mistakes, as well as introduce new features.

 

·         Generality: A language's ability to avoid unusual situations in construct availability or use by combining closely related constructs into a single, more general construct.

 

·         Uniformity: The property of a language in which similar features should appear and function in the same way.

 

·         Extensibility: The ability of a language to offer a user a generic mechanism for adding new constructs to the language.

 

·         Standardability: The ability of a language to be transferred from one computer to another without causing substantial changes in the linguistic structure.

 

·         Implementability: It is possible to write about the quality of a language that supplies a translation or interpreter. This can address the language definition's complexity.

 

CONCLUSION:

The technology world expands exponentially with each passing year and month. They are continually producing new, up-to-date telephones and tablets, and the market fight for first place is heating up. Programmers and web developers in this field are in high demand right now because they have a thorough understanding of the numerous programming languages available, each of which serves a specific purpose.

 

CONFLICT OF INTEREST:

The authors have no conflicts of interest regarding this investigation.

 

ACKNOWLEDGMENTS:

The authors would like to thank the department head for his encouragement  and support.

 

REFERENCES

1.        Todorov E, Erez T, Tassa Y. Mujoco: A physics engine for model-based control. In2012 IEEE/RSJ International Conference on Intelligent Robots and Systems 2012 Oct 7 (pp. 5026-5033). IEEE.

2.        Shoham Y, Leyton-Brown K. Multiagent systems: Algorithmic, game-theoretic, and logical foundations. Cambridge University Press; 2008 Dec 15.

3.        Ranta A. Grammatical framework: Programming with multilingual grammars. Stanford: CSLI Publications, Center for the Study of Language and Information; 2011 Jul 15.

4.        Boshernitsan M, Downes MS. Visual programming languages: A survey. Computer Science Division, University of California; 2004 Dec.

5.        Chernigovskaya T, Natochin Y, Menshutkin V. Principles of evolution of natural and computer languages and physiological systems. Becoming Loquens»—Bochum Publications in Evolutionary Cultural Semiotics. Frankfurt am Main. 2000:211-36.

6.        Craven PV. What Is a Computer Language?. InProgram Arcade Games 2016 (pp. 33-40). Apress, Berkeley, CA.

7.        Messinis G. Earnings and Languages in the Family: Second‐Generation Australians. Economic Record. 2009 Sep; 85:S59-73.

8.        Eierman MA, Dishaw MT. The process of software maintenance: a comparison of object‐oriented and third‐generation development languages. Journal of Software Maintenance and Evolution: Research and Practice. 2007 Jan; 19(1):33-47.

9.        Zaytsev V, Fabry J. Fourth Generation Languages are Technical Debt. InInternational Conference on Technical Debt, Tools Track (TD-TD) 2019.

10.      Taylor JC. Fifth generation distance education. Instructional Science and Technology. 2001; 4(1):1-4.

11.      Zorron R, Maggioni LC, Pombo L, Oliveira AL, Carvalho GL, Filgueiras M. NOTES transvaginal cholecystectomy: preliminary clinical application. Surgical endoscopy. 2008 Feb; 22(2):542-7.

12.      Konfrst Z. Parallel genetic algorithms: Advances, computing trends, applications and perspectives. In18th International Parallel and Distributed Processing Symposium, 2004. Proceedings. 2004 Apr 26 (p. 162). IEEE.

13.      Loitz S, Wedler M, Brehm C, Vogt T, Wehn N, Kunz W. Proving functional correctness of weakly programmable IPs-a case study with formal property checking. In2008 Symposium on Application Specific Processors 2008 Jun 8 (pp. 48-54). IEEE.

14.      Hu G, Yuan X, Tang Y, Yang J. Efficiently, effectively detecting mobile app bugs with appdoctor. InProceedings of the Ninth European Conference on Computer Systems 2014 Apr 14 (pp. 1-15).

15.      Förster F, Medalia O, Zauberman N, Baumeister W, Fass D. Retrovirus envelope protein complex structure in situ studied by cryo-electron tomography. Proceedings of the National Academy of Sciences. 2005 Mar 29; 102(13):4729-34.

16.      Louca LT, Zacharia ZC. The use of computer‐based programming environments as computer modelling tools in early science education: The cases of textual and graphical program languages. International Journal of Science Education. 2008 Feb 26; 30(3):287-323.

17.      Louden KC, Lambert KA. Programming languages: principles and practices. Cengage Learning; 2011 Jan 26.

18.      Samimi-Dehkordi L, Khalilian A, Zamani B. Applying Programming Language Evaluation Criteria for Model Transformation Languages. International Journal of Software & Informatics. 2016 Oct 1; 10(4).

19.      Stefik A, Siebert S. An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE). 2013 Nov 1; 13(4):1-40.

20.      Repenning A. Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets. J. Vis. Lang. Sentient Syst... 2017 Jul; 3(1):68-91.

 

 

 

 

 

Received on 11.01.2022            Accepted on 10.03.2022     

© EnggResearch.net All Right Reserved

Int. J. Tech. 2022; 12(1):16-20.

DOI: 10.52711/2231-3915.2022.00003