Overview of Computer Language Hierarchy
Edited by TheGuyLoveNY, Jen Moreau
- 1 Language Hierarchy:
- 2 Overview of Language Hierarchy:
- 3 Assembler:
- 4 Linkers and Link libraries :
- 5 Debugger:
- 6 Editor:
- 7 Data Representation:
- 8 This article is part of a series on Computer Organization and Assembly Language (COAL). Read the full series here:
- 9 Referencing this Article
- 10 Comments
- Machine Language:
Machine language is the only language that computer understands and uses to perform a various operation. Everything from playing video games to watching your favorite movies is done by computer using Machine language. Machine Language is a language with a bunch of 0s and 1s. Every word in computer language is made up of 1s and 0s. This becomes almost impossible for a programmer to understand Machine language Since we hardly remember our lines of codes. Remembering numbers instead of commands would be very intricate for the programmer. Not to mention, Debugging the program in Machine language would be a nightmare. So, Computer scientists came up with an upper layer of programming called Assembly Language that translates Easy to understand (High-level language) to Machine language.
- Assembly Language:
Assembly language is easier than Machine Language and lies on an upper layer level than Machine language. However, Much like computer language, Assembly languages works on low-level programming and it is unique to a particular processor. Unlike machine language, assembly language is not entirely on 1s and 0s, In fact, assembly language allows programmers to use codes or names to as oppose to a bunch of 1s and 0s. But we know that computer only understands machine language. So how does the assembly language is used to communicate with the computer? Well, a utility program is used so-called "Assembler" that translate this assembly language to machine language, the only language computer understand.
- High-Level Language:
High-Level Language or HLL are the languages that are designed specifically for the programmer with much easier syntax. High-level language is much easier to figure out because there are more English-like Languages in written programs. However, This high-level language must be converted to machine language, since computer only knows 1s and 0s. This translation is done by a compiler or interpreter depending on the style. Compiler/Interpreter takes in the source code as an input, process it by understanding the system and finally producing executable file meaning the computer readable file. It is also important to keep in mind that higher level languages mostly focuses on software development aspect and not on the hardware aspect.
Overview of Language Hierarchy:
Language translation is the process of translating a program (source code), written in the higher level language to lower level language. This translation process can occur once or multiple time depending on the degree of programming. A program called translator is responsible for this process. Initially, Translator first compiles the program meaning it scans for any possible error or mistake done by the programmer. If there are any mistakes then it reports the error to the developer and stops the process of translation since a program with flaws cannot be executed.
After the compilation of the program, The translator starts the translation of the program into lower-level language, for example, the translator may convert to assembly language. And then another interpreter, this time "Assembler" will translate this Assembly language to machine language.
In Machine language, Instructions are the basic command that acts as an interface between hardware and software. Instructions are the commands that tell the computer exactly what is to be done. There are two primary Instruction fields, Namely:
- Opcode: Opcode also known as Operation code, is a set of instructions that tells the computer what operation are to be performed. Opcodes are a part of machine language; they are are a set of commands that can be used in computer language. There are many types of opcode that can be used to perform various operations.
For example: MOV A, 03H
Here, "MOV" is an opcode that manipulates the operands. In the example above, A is an operand to which 03 hex value is assigned.
- Operand: Operands are the variables or values which are manipulated by the opcodes. For example MOV AL, 24h
Here, The operand 24h is being assigned to another operand which is a register in the example above. The opcode "MOV" only means to move the operand 24h to another operand AL.
Assembler is a translator that translate a program written in Assembly language to object files. Since computers only understand machine language, It is important the program must be converted to machine compatible format. Assembler is also used with higher level languages like Java, C, C++, Python, etc. This high-level language is first interpreted or compiled into assembly files (C, C++ in this case), then the assembler comes in and converts these assembly files to object files.
Linkers and Link libraries :
The linker is a computer program that takes a bunch of object files as an input and combines all these object files as a single executable file. Initially, Programs written by programmers are compiled by compilers. Once the records are collected, they are converted to object files which are then fed as an input to the linker. Linker converts these files to executable or even as a library data for further use.
Link libraries are just a collection of routines, variables that are used to bind or link a compiled program to an executable file.
There are two types of Link libraries: Dynamic-Link libraries (DLL). Statically linked libraries.
Quick overview of the process :
As we can see from the diagram above (Figure 2.0), The job of a linker is to link the files to the library. Ultimately, An executable file is produced to run on the operating system, Windows.
A debugger is a software that is used to find bugs in a program. No one is perfect, Humans are prone to make mistakes, Programmers are no different. A script written for a software contains lines of codes no less than a thousand. Finding errors from thousand lines of code is not an easy job. For this matter, a software called debugger was created that figures out if there is any error in the program and If there is a mistake, the debugger locates the error for the programmer. Hence, This saves tons of time for developing the software rather than wasting it on finding errors. It is, however, Important to note that a debugger is a smart program but it only finds syntax mistakes and not logical errors. Logical errors are nothing but the logic set by a programmer. Which is something the only developer can understand and solve it.
Editor is a program that allows users to write text, Read text from it and even save it. We have tons of editors available for us. Editors are used for a various purpose, There are a lot of editors specifically designed for programmers that actually help in proper syntax, Syntax coloring and much more. Some of the modern writers are Notepad++, Sublime Text, Vim, Geany etc. Not to mention, These editors are for free and are used by many professional programmers. In a nutshell, An editor is a program that lets you store text in a file.
As we know, Data is any information stored in a computer so that it can be retrieved later to process that information. Interestingly, Computer only uses bits, i.e Binary digits 1s, and 0s. But we humans can't work with only bits, We need alphabets, Numbers, and even punctuations. In order to solve this problem, a standard method called ASCII was used in computers. Internally, A computer stores 1s and 0s for every letter. In other words, Each character on our keyboard is assigned a code in the computer according to ASCII standards. For example, character "a" is assigned a code 97 decimal number, Character "A" is assigned a decimal number 65. Notice how a letter "a" (lowercase) is different than "A" (uppercase). For every character on our keyboard, There is a code assigned to them. That is how data is represented on a computer.
This article is part of a series on Computer Organization and Assembly Language (COAL). Read the full series here:
3) Overview of Language Hierarchy
Referencing this Article
If you need to reference this article in your work, you can copy-paste the following depending on your required format:
APA (American Psychological Association)
Overview of Computer Language Hierarchy. (2017). In ScienceAid. Retrieved Dec 16, 2018, from https://scienceaid.net/Overview_of_Language_Hierarchy
MLA (Modern Language Association) "Overview of Computer Language Hierarchy." ScienceAid, scienceaid.net/Overview_of_Language_Hierarchy Accessed 16 Dec 2018.
Chicago / Turabian ScienceAid.net. "Overview of Computer Language Hierarchy." Accessed Dec 16, 2018. https://scienceaid.net/Overview_of_Language_Hierarchy.
Categories : Computer Organization and Assembly Language
Recent edits by: TheGuyLoveNY