Types & Peculiarities Of Computer Languages
Abstract
Humans interact with computer in their language. Computers can understand multiple languages. Each language has its own purpose. They can be used to give specific commands or develop applications. For different types of development platforms there are multiple languages. Some are very popular among developers and some are struggling in IT industry. However, one should use a language only when it is suitable for that purpose.
Introduction
There are also other types of languages, which include:
- System languages: These are designed for low-level tasks, like memory and process management.
- Scripting languages: These tend to be high-level and very powerful.
- Domain-specific languages: These are only used in very specific contexts.
- Visual languages: Languages that are not text-based.
- Esoteric languages: Languages that are jokes or are not intended for serious use.
What is a Computer Language
Humans communicate with each other in a specific language, so Computers. They take instructions in a language which they can understand. These sets of instructions are called programs. The languages which are used to write these programs are known as Programming Languages or Computer Languages. Here is the definition of a Programming Language:“A programming language is a vocabulary and set of grammatical rules for instructing a computer or computing device to perform specific tasks”. Each programming language has a unique set of keywords (words that it understands) and a special syntax for organizing program instructions.
Types of Programming Languages
Programming Languages are divided into two basic types:
- Low Level Language
- High Level Language
Low Level Language
A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture – commands or functions in the language map closely to processor instructions. Generally, this refers to either machine code or assembly language. Machine code is the only language a computer can process directly without a previous transformation. Currently, programmers almost never write programs directly in machine code, because it requires attention to numerous details that a high-level language handle automatically.
Furthermore, it requires memorizing or looking up numerical codes for every instruction and is extremely difficult to modify. True machine code is a stream of raw, usually binary, data. A programmer coding in "machine code" normally codes instructions and data in a more readable form such as decimal, octal, or hexadecimal which is translated to internal format by a program called a loader or toggled into the computer's memory from a front panel. Second-generation languages provide one abstraction level on top of the machine code. In the early days of coding on computers like the TX-0 and PDP-1, the first thing MIT hackers did was write assemblers.
High Level Language
A high-level language is any programming language that enables development of a program in a much more user-friendly programming context and is generally independent of the computer's hardware architecture. These languages are much closer to human language. They are also distinguished into further categories by their generations, like 2GL, 3GL. As generation increases it comes closer to Human Language. 4th Generation Languages are much easier to understand like, SQL (Sequential Query Language – used to create and manipulate with Databases). The first high-level programming languages were designed in the 1950s. Now there are dozens of different languages, including Ada, Algol, BASIC, COBOL, C, C++, FORTRAN, LISP, Pascal, and Prolog.
Language Descriptions
Each Language has its own pros and cons, depending on the purpose it was designed for. Here are some common languages designed with their specific purposes and Pros and Cons:
Ada
Ada is a general-purpose, high-level programming language based on Pascal. It was developed under the aegis of the Department of Defense and is especially well suited to real-time and embedded systems. Ada emphasizes data abstraction and information hiding and forces you to differentiate between the public and private parts of each class and package. “Ada” was chosen as the name of the language in honor of Ada Lovelace, a mathematician who is considered to have been the world’s first programmer. Today, Ada is used primarily in military, space, and avionics systems.
Assembly Language
Assembly language, or “assembler,” is a kind of low-level language in which each statement corresponds to a single machine instruction. Because the statements use specific machine instructions, an assembly language is specific to a particular processor— for example, specific Intel or Motorola CPUs. Assembler is regarded as a 2GL. Most programmers avoid it unless they’re pushing the limits in execution speed or code size.
C
C is a general-purpose, mid-level language that was originally associated with the UNIX operating system. C has some high-level language features, such as structured data, structured control flow, machine independence, and a rich set of operators. It has also been called a “portable assembly language” because it makes extensive use of pointers and addresses, has some low-level constructs such as bit manipulation, and is weakly typed. C was developed in the 1970s at Bell Labs. It was originally designed for and used on the DEC PDP-11—whose operating system, C compiler, and UNIX application programs were all written in C. In 1988, an ANSI standard was issued to codify C, which was revised in 1999. C was the de facto standard for microcomputer and workstation programming in the 1980s and 1990s.
C++C++, an object-oriented language founded on C, was developed at Bell Laboratories in the 1980s. In addition to being compatible with C, C++ provides classes, polymorphism, exception handling, templates, and it provides more robust type checking than C does. It also provides an extensive and powerful standard library. C#C# is a general-purpose, object-oriented language and programming environment developed by Microsoft with syntax similar to C, C++, and Java, and it provides extensive tools that aid development on Microsoft platforms.
Cobol
Cobol is an English-like programming language that was originally developed in 1959–1961 for use by the Department of Defense. Cobol is used primarily for business applications and is still one of the most widely used languages today, second only to Visual Basic in popularity (Feiman and Driver 2002). Cobol has been updated over the years to include mathematical functions and object-oriented capabilities. The acronym “Cobol” stands for COmmon Business-Oriented Language.
Fortran
Fortran was the first high-level computer language, introducing the ideas of variables and high-level loops. “Fortran” stands for FORmula TRANslation. Fortran was originally developed in the 1950s and has seen several significant revisions, including Fortran 77 in 1977, which added block-structured if-then-else statements and character string manipulations. Fortran 90 added user-defined data types, pointers, classes, and a rich set of operations on arrays. Fortran is used mainly in scientific and engineering applications.
Java
Java is an object-oriented language with syntax similar to C and C++ that was developed by Sun Microsystems, Inc. Java was designed to run on any platform by converting Java source code to byte code, which is then run in each platform within an environment known as a virtual machine. Java is in widespread use for programming Web applications.
Javascript
JavaScript is an interpreted scripting language that was originally loosely related to Java. It is used primarily for client-side programming such as adding simple functions and online applications to Web pages.
Perl
Perl is a string-handling language that is based on C and several UNIX utilities. Perl is often used for system administration tasks, such as creating build scripts, as well as for report generation and processing. It’s also used to create Web applications such as Slashdot. The acronym “Perl” stands for Practical Extraction and Report Language.
PHP
PHP is an open-source scripting language with a simple syntax similar to Perl, Bourne Shell, JavaScript, and C. PHP runs on all major operating systems to execute server – side interactive functions. It can be embedded in Web pages to access and present database information. The acronym “PHP” originally stood for Personal Home Page but now stands for PHP: Hypertext Processor.
Python
Python is an interpreted, interactive, object-oriented language that runs in numerous environments. It is used most commonly for writing scripts and small Web applications and also contains some support for creating larger programs.
SQL
SQL is the de facto standard language for querying, updating, and managing relational databases. “SQL” stands for Structured Query Language. Unlike other languages listed in this section, SQL is a “declarative language,” meaning that it does not define a sequence of operations, but rather the result of some operations.
Visual Basic
The original version of Basic was a high-level language developed at Dartmouth College in the 1960s. The acronym BASIC stands for Beginner’s All-purpose Symbolic Instruction Code. Visual Basic is a high-level, object-oriented, visual programming version of Basic developed by Microsoft that was originally designed for creating Microsoft Windows applications. It has since been extended to support customization of desktop applications such as Microsoft Office, creation of Web programs, and other applications. Experts report that by the early 2000s more professional developers were working in Visual Basic than in any other language (Feiman and Driver 2002).
Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, simplicity, and comprehensibility by factors of 5 to 15 over low-level languages such as assembly and C (Brooks 1987, Jones 1998, Boehm 2000). You save time when you don’t need to have an awards ceremony every time a C statement does what it’s supposed to. Moreover, higher-level languages are more expressive than lower-level languages.
High-level computer languages use formats that are similar to English. The purpose of developing high-level languages was to enable people to write programs easily, in their own native language environment (English). High-level languages are basically symbolic languages that use English words and/or mathematical symbols rather than mnemonic codes. Each instruction in the high-level language is translated into many machine language instructions that the computer can understand.
Java and C# are two very similar programming languages that are well-optimized and have stricter rules to help prevent programming mistakes. Code in these languages need to be “compiled” into lower-level code before it runs, and all variables need to be “declared” with their name and type. They also enforce/encourage a methodology known as “object-oriented programming”, requiring all code to belong to an “object”.
People who program in these languages use an IDE to write their software in, which can provide various features to help with programming, such as auto-completion suggestions while they code, and automatic highlighting of certain errors. The rules in these languages will help you detect certain errors before you even run your code, which can be especially helpful when learning programming. However, Java or C# are not made for writing simple scripts, and they are not as popular for quickly creating dynamic websites.
Conclusion
Each language has its own advantage and disadvantage. It may provide good support for one purposes and not for other. May be another language would be suitable for it. However, before starting your career choose your field of interest rather choosing a language. That will help you to design an effective roadmap.
References:
- https://www.webopedia.com/TERM/P/programming_language.html
- https://en.wikipedia.org/wiki/Low-level_programming_language
- https://www.webopedia.com/TERM/H/high_level_language.html
- https://www.techopedia.com/definition/3925/high-level-language-hll
- Code Complete – By Steven McConnell, 2nd Edition – Microsoft Press
- https://mikkegoes.com/14-programming-languages-explained/
- https://insights.stackoverflow.com/survey/2018/#technology
- https://owlcation.com/stem/