Agent46's blog

Contents

Programming Languages

16 December 2015

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!
********************************************************************************************************************************************

Beautiful Songs

16 December 2015 \\ Updated: 02 February 2016

There is no doubt music is part of us

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!

Six Great Songs

  1. Children of Bodom: A Symphony Tribute
  2. This first one is a, as the title implies, a symphonic tribute to the finnish melodic death metal band: Children of Bodom. Formed in 1993, these finnish metallers are widely known worldwide for their state-of-art creative music, musicianship, and jaw-dropping guitar and keyboard solos. This tribute proves how great their work translates to classical music. Go on, give it a spin!

  3. Wintersun - Battle Against Time
  4. Wintersun is truly a magnificent finnish band. It all started out in 2003 with Jari Mäenpää after being fired from Ensiferum. Originally, Wintersun was a one-man band; the debut album was crafted by this master mind while later albums featured a band of four. Wintersun is considered as epic metal, combining mind-crushing melodies, proficient guitar playing, beautiful keyboard melodies, and fast drums. Give them a listen, you will not regret it!

  5. Eluveitie - A Rose for Epona
  6. The Swiss folk metal band Eluveitie was formed in 2002. Their music features the use of traditional instruments along with a mix of harsh & clean vocals as well as guitars. One instrument they use many have never heard of is the hurdy-gurdy.

  7. Insomnium - One For Sorrow
  8. Insomnium is a legendary melodic death metal band from Finland that play dark songs filled with sorrow. The guitars are tuned at a couple steps below standard tuning to achieve this darkness. Also, one can relate directly to their lyrics. Enjoy the darkness!

  9. E.S. Posthumus - Unstoppable
  10. Prepare for the ultimate productivity-enhancement power song! Anonymous sure love it.

  11. Syd Matters - To All Of You
  12. I discovered this song while playing Life Is Strange. I fell in love with it, and I'm convinced you will too! It is a perfect song to boost your motivation. Also, the lyrics are beautiful.

********************************************************************************************************************************************
And this ends Agent46's second blog!
********************************************************************************************************************************************