It’s what the smartest, fastest and most intelligent machine on this planet can understand – Thing 1 and Thing 2. Okay, let’s be more precise – Zeros and Ones.
My inspiration behind writing this blog is my toddler child who thinks that software is something that is ‘soft’ and you can ‘wear’ it . As I was explaining to him about computers and software, I found that I need a refresher. I went back to reading the basics of Computer Science and Electronics. It would need years (and maybe a PhD) to completely understand the whole end-to-end process, but I am sharing as I am learning and hopefully this will peak your interest and encourage you to read or research further.
Let’s enter the computer’s world of bits and bytes. It’s your usual work day, you start your day with responding to emails, and later, maybe open your usual software and continue working. Little do you think of how exactly the letters you type on the keyboard get translated to your desired results. Or a few mouse clicks can help you navigate around and command the computer on what to do. Even a simple operation such as creating a new text file in notepad is quite mind boggling when you think deeper on what goes underneath. Basically, you are “telling” the computer in English that you need to save a text file, but your computer understands only 0 and 1. There is a HUGE translation gap. There has to be some translation which converts actions and commands to 0’s and 1’s so a computer can understand. Not only that, a ‘Save’ command will save text in 0 and 1 and will give it back in English when requested. This translation is super-fast, so much so, that it is under appreciated and taken for granted! Luckily computers are just machines so they don’t get emotional ;P but let’s just do our part and pay some attention to the grand scheme behind clicks and typing.
We can break end-to-end processing into 3 major steps:
- Translation to Binary
- Saving commands in the Memory as Binary
- Executing Binary commands using CPU
Translation to Binary
Before we talk about Translation to Binary, let’s look at what exactly is ‘binary’ i.e. 0 and 1
What is 0 and 1?
When we say that information is consumed and stored in computer form of 0’s and 1’s, there is literally no 0 and 1 written in the memory like we write it on a paper. 0 and 1 can be interpreted as absence and presence of something. In this case, it’s electric charge since we are dealing with electric circuits.
Why is Translation needed and how is it done?
Translation is done by Operating Systems and Compilers. We use keyboards, mice, voice commands, etc. to interact with a computer, but this is all gibberish since computers cannot understand it. An Operating System is the bridge between computer software and hardware. Along with converting commands to 0’s and 1’s, it oversees that all running programs get what they want in terms of CPU time, resources, and memory. So, all our physical actions or interactions eventually get written into a series of electric charges i.e. 0’s and 1’s. They then either get stored into a RAM or hard disks. Also, code written in high level languages (closer to human language) compiles and translates to machine language. In short, all eventualities will lead to conversion of commands into 0’s and 1’s.
In my next part, we will continue our journey and see what happens to the translated actions and commands. If you have any questions in the meantime, don’t hesitate to contact KTL Solutions at 301-360-0001 or by emailing, info@ktlsolutions.com
MINAL WAD | .Net Developer
Ever since Minal joined KTL Solutions in March 2008, she has been diligently working as a Business Solutions Developer, providing customized software that integrates with Dynamics GP. She has a passion for using technology to solve real world problems, and it is this passion that enables her to deliver projects with exceptional quality, in time and within budget. Her role as a business analyst is a new found skill, and she has been able to successfully demonstrate it in some of her recent projects. She is proficient in C#, ASP.Net, SQL Server, SharePoint, WPF, Entity Framework, MVVM and Database Design. Minal has over 10 years of experience as a developer. Prior to KTL, she worked with Microsoft in Fargo, ND, where she was a part of Dynamics Axapta team. She holds a Master’s Degree in Computer Science from Oklahoma State University. She involves herself in training and certifications that keeps her abreast with new technologies.