For being a perfectionist in any of the programming languages once should dive down into the basics of Computer programming. In this article, we will cover basic introduction of all kind of programming languages used in the software industry. If one wants to be a good developer, his/her programming basics should be rock solid.
First let’s get introduced to programming languages by understanding what is a computer program .
A computer program is basically the set or the sequence of instructions written using certain Computer Programming Languages (Java, .net, python etc.) to perform some predefined tasks by the computer. A computer program (also called a computer software) is nothing but a set of rules given to the machine to perform specific tasks.
Computer programming instructions are also considered as program source code and computer programming is also called program development or coding.
The physical computer (to take input from developer) which executes these programming instructions is called hardware. A computer without a computer program is just a dump box and it is the program that makes computers active. Developers write the solutions in a given language that computer can understand to get the desired results. As a developer when he or she writes any programs, he/she should remember that the computer can only do or execute according to the instruction given by the developer.
There are many programming languages, few are listed below:
Do not panic in case you didn’t understand the above paragraph. We will take you through every important information in detail below.
To understand programming languages further, we can logically divide these into below parts . These explains the types of programming languages . In many places you can find 5 or 6 types of programming language so we thought to give you in depth by covering all the types of programming languages .
So let’s understand the key differences between a machine language and Assembly Language . Here we will cross compare Machine Language Vs Assembly Language.
As the name suggest, machine language is the set of instruction a computer can understand. Generally we call it machine code that CPU understands (it understands very limited set of instructions). Each instruction is readable and understandable as numbers , binary digits (0 and 1).
These binary numbers are generally called bits which is a short form for binary digit. Generated binary digits are translated into an instruction by the CPU that tells it to do a very specific job e.g. sorting, multiplying or dividing numbers etc. Machine code (or machine language) is difficult to read and write by humans as it is different from conventional mathematical notation or human language. Also its codes vary from computer to computer.
Assembly Language came into picture as machine language was so hard to develop and understand by developers. Assembly language is one level above machine language. Programmer can introduce names for blocks of memory that hold data. Instead of bits, each instruction is identified by a short name and variables can be identified by names rather than numbers (0 and 1). This makes them much easier to read and write.
The CPU is not capable to understand assembly language , So we have to convert it to machine language which is readable for it with help of an assembler .Assembly language is completely based on the computer in which it runs against the most high level programming languages, which are generally portable across multiple systems. Utility program is used to convert assembly language into executable machine code. These utility programs are MASM, NASM etc.
Business oriented languages were introduced to satisfy business level needs. Business analysts can directly write the rules to instruct computer to create set of result(s).
Common business oriented language also known as COBOL is one of the oldest programming language. A committee of users and U.S. government organizations established CODASYL to develop and oversee its standard across systems in order to ensure its portability. The basic use of COBOL language is for development of business features. COBOL is not suitable for writing programs which are complex in nature.
Unlike other languages like C, C++, COBOL language do not have in-build user defined variables or pointers. Also the scope of the methods used in COBOL is very limited. This language defines a simple and clear programming technique.
COBOL as language has proven to be completely suitable for its targeted problems. All the features of COBOL operate in a the domain in which the difficulty of the program lies only in the business rules not in the algorithms or data structures. The places where the business demands complex algorithms, complex data structures, COBOL language take care the needs with an suitable text such as SORTING or SEARCH.
So as we understood that COBOL is a simple and user friendly language with a quite limited scope of function but the with the beginning of Object Oriented COBOL, its dimension is now changed completely. It include all the benefits of previous versions and at the same time it also provides –
Also called non-procedural languages, declarative languages are programming languages in which a program specifies what needs to be done. It does not specify how to do it. Declarative languages have less visible difference between implementation of a program and its specifications. Below are basic kind of declarative languages:
Logic Languages works on relationship between different entities sometime calls inter-dependency of the entities. The relationship between entities are searched in a systematic way which will answer the desired queries. The best use case of logic programming is natural language processing and other Artificial Intelligence programs.
Functional languages have a mathematical style and these are developed by facilitating different arguments to methods (also called functions). LISP, ML, and Haskel like functional languages generally used as automation of existing scenarios or research tools in language development.
Structured Query Language is basically a medium to interact with the database to give request of desired operation(s). The basic database operations can be inserting, updating and/or deleting data. It also used to manipulate the metadata (Columns, data types etc.) of the table(s). Some database administrators call it non-procedural language because procedural languages needs the details of the action(s) to be specified e.g. dealing with indexes, querying tables, working with file I/O operations etc. All steps needed for SQL execution are taken care by SQL database explicitly. In structured query language, all instructions are given through the statements. Additionally parameters and operands are provided to these statement. SQL standards are being followed by statements and the respective parameters. Generally we group SQL statements into the following categories:
e.g. sort, order by, group by etc.
OOP is a programming model which encourages the programmer to focus on ‘objects’ and their interactions with each other. These objects can be any of real life objects like school, employees, cities etc.
Objects are generally described as their state and behavior (we call them methods). As a practice, good programmer hides the state within the object and gives access to the object with the help of methods. This process is called encapsulation which is just like an API to the object.
In OOP, class is like a blueprint for an object. The next steps can be creating (or instantiating) the desired objects which also called instances of the class.
Data and the methods are two separate entities which are merged together for the desired result. Object-oriented programming (OOP) enables developers with the ability to create objects that loosely couple both properties and behaviors into a reusable package.
In OOP, developer define data types and the operations that could be applied to the data structure. In addition, developers can create relationships between two objects. With Object-oriented programming (OOP), many useful features comes along e.g. abstraction, inheritance, encapsulation polymorphism. Objects overlays the desired data and their operations in a sense that only the required operations are publicly available and the data structures behind the scenes are not accessible. This hiding of information made large volume programming much easier by enabling a developer to think in depth about each part of the program. Following are the most popular Object oriented Languages:
Scripting languages are also called small (or little) languages. They are intended to solve relatively very small set of programming requirements that don’t need the burden of data declarations and much functions required to make large programs effective.
PERL (practical extraction and report language) is very popular scripting language which was developed in the late 1980s, for use with the UNIX operating system. It is used for writing utilities for operating system and programs related to file-manipulation. Its are easy to learn and sometimes used for considerably larger programs. It has all the features of earlier scripting languages. PERL provided many different ways to define common operations and thus allowed programmer to adopt any suitable style. In the early 1990s it became famous as a programming language for small applications programs and for prototypes of bigger programs. Also with combination of other languages, it became popular for programming computer Web servers.
High-level languages enable the developer to think and write programs which are independent of what kind of computer the program is being run on. Programs developed in high level languages should be translated into a form that the CPU can understand before they can be executed. There are two steps in which this is done – compiling and interpreting.
High-level languages mainly deal in objects, variables, arrays, boolean expressions, subroutines and functions, locks, loops, threads, and other computer science features rather than dealing with registers, memory addresses and call stacks. More features, like object-oriented language features, string handling routines and file input/output are also present. The main point to be considered for high level programming languages can be presented as no dependency of the programme from the machine.
High-level languages permit faster development of large programs. The developed code as executed by the computer is not as efficient but the amount of time saving for developer is huge. The reason is that the cost of writing a program is nearly constant for each line of code, regardless of the language. Thus, a high-level language where every line of code translates to 1 and 0, machine instructions costs only 1/10 as much in program development as a low-level language where every program line represents only a single machine instruction where the code is developed.
High level languages are:
A COMPILER converts any high level language to Machine language (or machine code) that computer’s processors understands (in binary format). After developer write a program, the source code is compiled into machine code. This m/c code is then stored as an executable file. Compilers for various languages needs to be installed as per the used programming language such as C, C++, Java and Pascal, etc.
So in short we can state that compiler is a program that reads code and provides a stand-alone executable file that the CPU can understand. Once the program has been translated into an executable file, programmer do not need the compiler to run the program. At last, developer can execute binary file to perform the programmed task. Many a times, compiler do a better job than human programmers can do in assembly language.
ASSEMBLER act as a medium to convert assembly language into computer readable language (machine language or machine code). So as the name suggests, assembler works by assembling and converting written code (java, .net etc) of assembly language into object code that (zeros and ones) of machine language.
An interpreter is a type of computer program which executes the statement(s) at runtime. It does not require to convert the source code into machine language. For example any selected language(s) like python, PHP, LISP, Perl etc. do not require any conversion into machine code. An interpreter use to convert such programs line by line. Thus, in case you are writing your program(s) in PHP, Python, Perl, Ruby, etc., you should install interpreters of these languages before you start programming.
As per above description, Interpreters are more flexible and at the same time they are not much efficient while running of programs because the interpreting process needs to be done every time the program is run. This means the interpreter is needed every time the program is run.
Read Also : Perfect Guide to Know All About Web server
Algorithmic languages are purely based on the Algorithms. These are developed for describing computational processes and are so designed to express mathematical and/or symbolic computations. It is part of the group of portable programming languages for scientific computations that had a strong influence on other languages.With this language, algebraic operations can be rendered similar to maths which permit the use of subprograms for reusing common operations. They were the 1st high-level programming languages.
ALGOL (elaborated as algorithmic language) was originally found by a collaboration European and American scientists in mid 19’s. They were used for doing computations as well as publishing algorithms. Starting versions of ALGOL were 58 and 60. ALGOL used recursive programs that could call internally to solve a problem. This solution was done by by reducing the problem into smaller part of the same kind. ALGOL also introduced block structure where the program is comprised of objects which might contain both data and methods and share the same data-structure as an entire program.
Initially algorithmic language was widely used in Europe and computer algorithms were published based on this language only. Many other influential languages (Ada, Pascal etc.) are based on ALGOL language. The other important languages got popular with ALGOL are Fortran, COBOL, Lisp etc.
WWW (also known as World Wide Web) language is an environment for rendering images, text, graphics and video/audio which are retrieved by using the Internet. Every part which got retrieved is considered as a Web page. These pages contain further web-links that allow its dependent pages to be retrieved. HTML (short form of hypertext markup language) is the one kind of WWW language for developing Web pages. HTML was initially designed by Tim Berners-Lee in Switzerland during the 80s.
HTML use tags which specify various elements of the document e.g. tables, headings, paragraphs etc. HTML language markup the desired document/data for displaying by a Web browser. The web browser reads and convert the various tags in a predefined layout according to the screen size and fonts. Following are some basic tags with one liner description:
<!DOCTYPE> Defines the document type
<html> Defines an HTML document
<head> Defines information about the document
<title> Defines a title for the document
<body> Defines the document’s body
<h1> to <h6> Defines HTML headings
<p> Defines a paragraph
<br> Inserts a single line break
<hr> Defines a thematic change in the content
<!–…–> Defines a comment
XML (extensible markup language) is a most trusted language used for documents that are published on the Web page(s). XML uses schema/DTDs to define data types and the description of tags used inside XML. By following these set of rules, usage of XML becomes very easy to carry data and its parsing. An example can be that document entities should use both beginning and an ending tag, such as <body>…</body>. XML have more kinds of hypertext links as compared to HTML e.g. links relative to a document or bidirectional links etc. Because an developer can declare/define new tags it is required that XML schema should also contain rules that instruct a Web browser regarding how to convert them. Below are the basic rules for building standard XML:
We hope you enjoyed the ride of learning basics of all computer programming languages which we have just discussed above. To conclude we can state that all languages have their pros and cons which needs to be considered while deciding the mode of development of your application. Some languages require complete infrastructure and licensed tools for development whereas some languages are very light and can be developed with minimum infrastructure.
Keep following our upcoming posts for detailed discussion about each Programming languages. We hope to provide you with simple and easy programming tutorials from beginner level to advanced .