If you are reading this article, it is likely that you own or have access to a computer. Devices like laptops, tablets and smartphones, but also internet servers are all computers.
Computers might contain different types of data, like texts, pictures, sound files, films, web pages, spread sheets, etc. For each type of data, there are programs (marketing people have recently coined the term “apps”, but that is the same thing) that can process or display data of that type. For example, web pages are displayed using a browser, pictures are displayed using graphics programs.
Without these programs, there would be no different data types. In the computer’s storage media, all types of data look the same. You can think of them as sequences of ones and zeros, but one can think of these two “digits” as characters of a simple alphabet as well that contains only two different characters. However, normally they are interpreted as binary digits.
Other types of data are represented as sequences of these binary digits or characters. For example, a program that can display a text file as text on your computer’s screen might translate the sequence “01100001” that it finds in a file on a storage device as the lower case letter “a”. It would use a certain code (in this case a code known as ASCII) in which every lower case letter, every upper case letter, every special character (including the empty space “ “) and every decimal digit is represented by a combination of 8 binary digits. There are 256 different combinations of 8 binary digits, so such a code would provide codings for up to 256 different characters (although the ASCII-code contains codes for lell characters). If you want to represent scripts with larger numbers of characters, like Chinese, you would need longer sequences of binary digits. For example, there are codes with 16 digits for each sign that have enough “space” to provide a code for almost any script in use today (and even some scripts no longer in active use, like Egyptian hieroglyphs).
Many kinds of data can be represented as sequences of characters and can be stored inside computers using such codes. Other types of data may be represented as strings of binary digits in another way. A graphics program might take some sequences of ones and zeros as representing binary numbers (that in turn represent the color and brightness of pixels of a picture. Although here the storage format would not use characters coded as binary sequences, one can still think of such data formats as some kind of code. The rules of that code are part of the program used to display or manipulate the data.
One might think of such a program as something comparable to the grammar of a language. If you hear the sounds of a foreign language that you don’t know, it is “just a sequence of sounds” for you. If you know the language, you can perceive a structure in that sequence. You perceive words, clauses and sentences, and you can understand these sentences. In a comparable way, you can look at the data stored in your computer as “just a sequence of binary digits” or you can look at it as something structured and meaningful. However, you do not need to know the “grammar” of the data type or file format yourself, but that “grammatical knowledge” is automated for you in the form of the programs you are using to access the data.
So from your perspective as a user, the computer contains different types of things, like pictures, texts, music, films etc. But one can also look at it from a technical perspective. Viewed this way, all the data objects in your computer have the same form. One can view them as sequences of ones and zeros.
The programs are a kind of data themselves. We are going to look at this important type of data in more detail in later articles.
The important idea to take away from this article is that the different types of things that you can interact with in your computer are all made up of the same “stuff”. The distinctions that turn them into different kinds of things are introduced by the programs running on the computer. So what is going on inside a computer can be described in different ways. These different views do not exclude each other. We may think of these different views as “layers of description”. We can describe a computer from a user’s viewpoint. From this point of view the computer presents a “world” that contains different types of things. On a more technical layer, all the data inside a computer looks the same: sequences of ones and zeros.
(The picture, showing a code table for the ASCII code mentioned in the text, is from https://commons.wikimedia.org/wiki/File:ASCII_Code_Chart-Quick_ref_card.png)