venerdì 20 maggio 2011

Programmazione: da Hello! a Hello World!

Oggi iniziamo a parlare di software e firmware (con tale parola si intende generalmente il software residente sul sistema. Es. un microcontrollore).
Vi sarà capitato di vedere un tipico esempio di programma, scritto in linguaggio C, come quello che segue:

#include <stdio.h>
int main()
{
    printf("Hello World!\n");
    return;
}

seguito, poi, dalle istruzioni di compilazione:
gcc -o hello hello.c

e finalmente l'output:
Hello World!

...e vi sarà capitato di pensare "ma perché mai un annuncio così eclatante se qui ci siamo solo io e un computer, il gatto dorme beato e ho solo finito di installare il compilatore C. Non ho mica completato il lavoro di anni che mi aspetta?".

Poi, con la sempre maggiore diffusione di Java, le cose sono diventate così:

class Hello {
    public static void main(String[] args) {
        System.out.println("Hello!");
    }
}

da compilare così:
javac Hello.java

e lanciare così:
java Hello

...il cui output sarà:
Hello!

Ma se abbiamo un Sistema Embedded con Linux a bordo e un Web Server (es. httpd) installato, allora possiamo effettivamente collegarlo a Internet, ottenere un indirizzo IP pubblico e scrivere il nostro primo vero "Hello Word!" all'interno di un file testo chiamato index.html. Questa volta così:

<html>
    <head>
        <title>Embedded_web</title>
        <meta http-equiv="Content-Type"
         content="text/html; charset=iso-8859-1">
    </head>
    <p>
        <font face="Arial" size="8">
        Hello Word!
        <font face="Arial" size="4">
        ...I'm on network
    </p>
</html>

e vederne gli effetti direttamente nel browser, così:


Ma se non ho un compilatore C e neppure uno Java, come posso scrivere il primo programma? Magari in Assembly? Si, ma l'Assembly, detto anche Assembler o Linguaggio Macchina, è strettamente legato alla piattaforma.
E come potrebbe essere questo ipotetico programma?

...così:

entrypoint:
           CALL beep
           JR entrypoint
beep:
           SET pin1
           CLR pin1
           RET

Qui Pianeta Terra, a presto.

Nessun commento:

Posta un commento