Programming Languages Basics

To communicate with a computer, we use computer languages or also known as programming languages. To write a program, we must use the computer languages. A computer language is a set of predefined words that are combined into a program according to predefined rules (syntax). Over the years, computer languages had evolved from machine language to high-level languages.

 

There are generally three types of computer languages. They are: 1. Machine Language, 2. Assembly Language and 3. High-level languages.

 

Machine Language

In the earliest days of computers, the only programming languages available were machine languages. Each computer has its own machine language which is made up of streams of 0’s and 1’s. The only language understood by a computer is the machine language. This language is tightly coupled with the computer hardware. It is difficult to write and maintain code in machine language.

1

Assembly Language

The next evolution in programming came with the idea of replacing binary code for instruction and addresses with symbols or mnemonics. Because they used symbols, these languages were first known as symbolic languages. The set of these mnemonic languages were later referred to as assembly languages. It is easy to write and maintain programs in assembly language than in machine languages.

2

 High-Level Language

Although assembly languages greatly improved programming efficiency, they still required programmers to concentrate on the hardware they were using. Working with symbolic languages was also very tedious, because each machine instruction had to be individually coded. The desire to improve programmer efficiency and to change the focus from the computer to the problem being solved led to the development of high-level languages.

Examples of high-level languages are:

  1. BASIC (Beginners All Purpose Symbolic Instruction Code).
  2. FORTRAN (Formula Translation).
  3. PL/I (Programming Language, Version 1).
  4. ALGOL (Algorithmic Language).
  5. APL (A Programming Language).
  6. COBOL (Common Business Oriented Language).
  7. RPG (Report Program Generator).
  8. LISP (List Processing).
  9. Prolog (Program in Logic).
  10. C++
  11. Java
  12. Visual Basic
  13. C

3

 

Translation

Programs today are normally written in one of the high-level languages. To run the program on a computer, the program needs to be translated into the machine language of the computer on which it will run. The program in a high-level language is called the source program. The translated program in machine language is called the object program. Two methods are used for translation: compilation and interpretation.

Translator

A translator is a program, which converts the code written in one language into another language. The widely used translators are compilers and interpreters.

Compiler

A compiler is a translator which converts the program written in high-level language into assembly code or into another form of intermediate code or directly into machine code. A compiler converts the whole source code at once into object code and then executes it. So, compiler is faster than a interpreter.

Interpreter

An interpreter is a translator which converts the source program into object or machine code. The interpreter converts the source code line-by-line and executes it immediately, which results in less performance. Thus, an interpreter is slower than a compiler.

 

Generations of Programming Languages

There are five generations of programming languages. There are classified based on how close the programming language is to human beings.

First Generations Languages (1GL): The first generation language is the machine language. It consists of only 0’s and 1’s. It is very difficult write programs in machine language.

Second Generation Languages (2GL): The second generation language is the assembly language. Assembly language consists of symbols known as mnemonics, English words rather than 0’s and 1’s. Programs written in assembly language are converted to machine language using a translator known as assembler.

Third Generation Languages (3GL): The third generation languages are high-level languages which are similar to English. It is easy to write programs using high-level languages. Programs written in high-level language are converted to machine language by using a translator like compiler or interpreter. Third generation languages are problem oriented languages. Examples: C, FORTRAN, COBOL, PASCAL etc.

Fourth Generation Languages (4GL): The fourth generation languages are non-procedural languages. Programmers have to specify only what to do but not how to do it. These languages are developed for users having minimum programming language. Examples: SQL, ABAP etc.

Fifth Generation Languages (5GL): The fifth generation languages are declarative languages which are used in artificial intelligence and expert systems. Example: Prolog etc.

 

Advertisements

Different type of Cloud Services

Cloud platform is seeing rapid growth past few years and for many it is still very confusing with each service provider touting technical terms. Below are the few basic cloud services offered by various companies like  Google, Amazon, Microsoft and Salesforce. For a non IT person, below is perfect explanation in simplest terms.

 

Difference between different cloud services - Coding Security

 

SaaS Services

  • Email and Office Productivity: Applications for email, word processing, spreadsheets, presentations, etc.
  • Billing: Application services to manage customer billing based on usage and subscriptions to products and services.
  • Customer Relationship Management (CRM): CRM applications that range from call center applications to sales force automation.
  • Collaboration: Tools that allow users to collaborate in workgroups, within enterprises, and across enterprises.
  • Content Management: Services for managing the production of and access to content for web-based applications.
  • Document Management: Applications for managing documents, enforcing document production workflows, and providing workspaces for groups or enterprises to find and access documents.
  • Financials: Applications for managing financial processes ranging from expense processing and invoicing to tax management.
  • Human Resources: Software for managing human resources functions within companies.
  • Sales: Applications that are specifically designed for sales functions such as pricing, commission tracking, etc.
  • Social Networks: Social software that establishes and maintains a connection among users that are tied in one or more specific types of interdependency.
  • Enterprise Resource Planning (ERP): Integrated computer-based system used to manage internal and external resources, including tangible assets, financial resources, materials, and human resources.

 

PaaS Services

  • Business Intelligence: Platforms for the creation of applications such as dashboards, reporting systems, and data analysis.
  • Database: Services offering scalable relational database solutions or scalable non-SQL datastores.
  • Development and Testing: Platforms for the development and testing cycles of application development, which expand and contract as needed.
  • Integration: Development platforms for building integration applications in the cloud and within the enterprise.
  • Application Deployment: Platforms suited for general purpose application development. These services provide databases, web application runtime environments, etc.

 

IaaS Services

  • Backup and Recovery: Services for backup and recovery of file systems and raw data stores on servers and desktop systems.
  • Compute: Server resources for running cloud-based systems that can be dynamically provisioned and configured as needed.
  • Content Delivery Networks (CDNs): CDNs store content and files to improve the performance and cost of delivering content for web-based systems.
  • Services Management: Services that manage cloud infrastructure platforms. These tools often provide features that cloud providers do not provide or specialize in managing certain application technologies.
  • Storage: Massively scalable storage capacity that can be used for applications, backups, archival, and file storage.