Pagine

sabato 25 gennaio 2025

Strolling through informatics #16 – Data or programs? That is the question

by Enrico Nardelli

(versione italiana qua)

In this final post dedicated to presenting the fundamental concepts of informatics, we begin to address what is perhaps the most significant cultural contribution this discipline has made to our worldview

The concepts of algorithm, language, and automaton, which – together with others – we have explored in the previous posts in this series, are part of a computer scientist's conceptual toolkit and serve as the intellectual tools that a computer scientist uses to model and interpret the world. They can be successfully employed to provide complementary descriptions to those offered by other sciences, to express the informatics perspective on phenomena, thereby enriching our capacity to understand the reality around us.

In post #5 (How to instruct a computer), we presented a simple program written in symbolic language for a very simple register machine (RM). We then commented that such an automaton, in order to actually execute the program, needs it to be translated into machine language. As we explained in the previous post (From virtualization to the cloud), the physical machine level is the only one that can concretely execute programs and needs a language at its level (see the figure in that post).

In the figure below, where instructions are on the left and data on the right, the machine language version of the program presented in post #5 is shown.

Referring to section 4.2.2 of the volume The Informatics Revolution for a detailed explanation of how such a program is obtained from the symbolic language version, here we take it as is because we need it to begin discussing a very important concept in informatics: the dual nature that representation has for the executor.

Indeed, what is written in the memory cells of the RM has no intrinsic characterization as either data or instruction. In the example of a symbolic language program for RM presented in the figure of post #5 (How to instruct a computer), we distinguished the memory area with the program from that with the data for purely educational purposes. In that example, we, as human beings, can distinguish whether what we read in a cell is an instruction or data, but from the machine's own perspective, this distinction doesn't actually exist. Let's consider the second figure from post #4 (How a computer works): in that figure, it says that the RM "reads the instruction at address IC," when in reality the RM is simply reading a sequence of "0s" and "1s" and has no awareness – unlike us humans – that what it's reading is an instruction. Only the action expressed at the bottom of the same figure, "execute instruction read," will assign the actual nature of instruction to that binary sequence.

This becomes clear in the machine language version of the program shown in the figure above. Indeed, in that figure, in the memory cell at address 0 (which contains an instruction) the sequence "0000 00 0001" is written, but also in the memory cells at addresses 15 and 16 (which contain data that the program must process), the same value "0000 00 0001" is written (remember that spaces don't count). Similarly, in cell 6 (instruction) "0000 00 0000" is written, which is the same value written in both cell 10 and 17 (both data).

This observation implies that every piece of data handled by an RM, or by any computer, actually has a dual nature, being able to also be interpreted as an instruction for the machine. This dual nature of data provides informatics with a power of "replication" that was previously possessed only by biological systems. It is precisely this dual nature that serves as the basic conceptual mechanism for constructing computer viruses, which arrive in digital devices as data and then spring into action as programs.

In the next post, we will see a concrete example of such replication capability.

[[The posts in this series are based on the Author's book (in Italian) La rivoluzione informatica: conoscenza, consapevolezza e potere nella società digitale, (= The Informatics Revolution: Knowledge, Awareness and Power in the Digital Society) to which readers are referred for further reading]].

--
The original version (in italian) has been published by "Osservatorio sullo Stato digitale" (= Observatory on Digital State) of IRPA - Istituto di Ricerche sulla Pubblica Amministrazione (= Research Institute on Public Administration) on 22 January 2025.

Nessun commento:

Posta un commento

Sono pubblicati solo i commenti che rispettano le norme di legge, le regole della buona educazione e sono attinenti agli argomenti trattati: siamo aperti alla discussione, non alla polemica.