Programming is beautiful. Indeed, we humans are able to solve a bunch of problems to make our lives simpler and easier. It even saves lives as the world of medecine depends, to a certain extent, on the use of technology to treat patients, and to detect possible diseases and malfunctions. What are those technological tools based on? Code. What is code? Generally combinations of ASCII alphabetical letters. What are ASCII letters? Letters represented by bits. What are bits?Zeroes and ones working flawlessly together, perfectly in synchronization, to get special stuff done. Hence, programming gets a job done. And it's a canon skillset.
Programming languages are divided into three categories:
The latter being said, let's get down to business. Since the beginning of the digital age, numerous programming languages have been developed as to solve problems. This beginning of a new era saw it's roots back in 1949 with the creation of assembly.
Low-level programming languages, as defined by Wikipedia, provide 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. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware." Because of the close relationship between the language and the hardware architecture programs written in low-level languages tend to be relatively non-portable. If you want to learn on the subject, head over here. In other words, low-level programming languages such as Assembly provide the fastest programs at a cost of being harder and longer to write.
The following figure shows a sample of how the assembly language looks like. It's actually a Motorola MC6800 Assembly listing which shows original assembly language and the assembled form. Does it look like the JavaScript we've been learning through Khan Academy? I bet you not!
Not really love at first sight, eh? Below is another program written in Assembly that outputs not a Motorola protocol, but a simple "Hello, World" program. Enjoy!
section | .text |
global | _start |
_start: | |
mov | edx,len |
mov | ecx,msg |
mov | ebx,1 |
mov | eax,4 |
int | 0x80 |
mov | eax,1 |
int | 0x80 |
------- | ------- |
section | .data |
msg | db 'Hello, world!',0xa |
len | equ $ - msg |
This program is the fastest way for a computer to output "Hello, world!" Now, let's stop fiddling around, and move on to high-level programming language!
A high-level programming language is one that offers a certain level of abstraction. Wikipedia defines such concept as a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or may automate (or even hide entirely) significant areas of computing systems (e.g. memory management), making the process of developing a program simpler and more understandable relative to a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is. "High-level language" refers to the higher level of abstraction from machine language. Rather than dealing with registers, memory addresses and call stacks, high-level languages deal with variables, arrays, objects, complex arithmetic or boolean expressions, subroutines and functions, loops, threads, locks, and other abstract computer science concepts, with a focus on usability over optimal program efficiency. Unlike low-level assembly languages, high-level languages have few, if any, language elements that translate directly into a machine's native opcodes. Other features, such as string handling routines, object-oriented language features, and file input/output, may also be present.
Hence, a high-level programming language requires a compiler or an interpreter that is responsable in translating the written code to machine code, being zeroes and ones. Examples include C, C++, C#, Python, Ruby, Java, JavaScript, Lisp, Fortran, etc.
Finally, very high-level programming languages is a programming language with a very high level of abstraction. Wikipedia adds that Very high-level programming languages are usually domain-specific languages, limited to a very specific application, purpose, or type of task, and often scripting languages (especially extension languages), controlling a specific environment. For this reason, very high-level programming languages are often referred to as goal-oriented programming languages. It also adds that the term VHLL [very high-level programming language] was used in the 1990s for what are today more often called high-level languages (not "very") used for scripting, such as Perl, Python, Ruby, and Visual Basic.
********************************************************************************************************************************************
And this ends Agent46's first crash course on some programming languages stuff blog post!
********************************************************************************************************************************************
Music has the power kick start the steam engine for hours before falling back to offline mode; it gives us the energy to motivate us in completing tasks. There is a saying that states magic does not exist, but this cannot hold true when good music plays! Yes, music is a rather touchy, and subjective subject, but every human being on this Earth likes a particular genre of music. A genre that fuels their blood and soul.
Now, enough of this chatter, and let's get down to business! The goal of this blog post is to showcase a not one, but six songs I personally really like. Perhaps you will like them, perhaps not. Anyway, here it comes!
********************************************************************************************************************************************
And this ends Agent46's second blog!
********************************************************************************************************************************************