Generale

Notazione postfissa con ANTLR e lo Shunting-yard algorithm

Lo Shunting-yard algorithm è un algoritmo per effettuare il parsing di una espressione matematica in notazione infissa e generare un’espressione in notazione postfissa (Reverse Polish notation).

L’algoritmo fa uso di uno stack per i risultati intermedi e di una coda di output.
In questo articolo, l’espressione matematica verrà tokenizzata con l’ausilio di ANTLR. Genereremo un lexer che ci permetterà di iterare sui token della stringa e di applicare l’algoritmo.

Continua >

Rimuovere le ε-produzioni da una grammatica CF

Dato un linguaggio $latex L$ generato da una grammatica context free $latex G$, il linguaggio $latex L\setminus\{\epsilon\}$ è un linguaggio CF generato da una grammatica $latex G’$ senza simboli inutili e senza ε-produzioni.

Possiamo di conseguenza eliminare le ε-produzioni da una grammatica e ottenere una grammatica che genera lo stesso linguaggio (ammettendo $latex S \rightarrow \epsilon$ se $latex \epsilon \in L$).

Continua >

Breve tutorial sull’editor VIM

VI è un editor di testo, disponibile su diverse piattaforme Unix-like, estremamente flessibile, nonstante la sua complessità. Per questo tutorial verrà utilizzato VI Imporved, un editor in gran parte compatibile con VI.

Continua >

PHP: tenere traccia degli accessi al sito da parte di un client con i cookie

In questo esempio utilizzeremo i cookie, con la relativa variabile globale $_COOKIE e la funzione setcookie, per salvare la data e l’ora del primo e dell’ultimo accesso al sito.
Alla prima connessione da parte del client, il valore relativo alla chiave firstAccess, all’interno di $_COOKIE, non sarà settato. A quel punto verrà settato e, nelle successive comunicazioni, potrà essere reperito.
Il valore relativo a lastAccess verrà aggiornato di volta in volta:

<html>
    <body>
    <center>
    <?php
        date_default_timezone_set('Europe/Rome');

        $nowts = date("d/m/Y H:i:s");

        if(!isset($_COOKIE["firstAccess"]))
        {
            setcookie("firstAccess", $nowts);
            echo "Sembra essere la tua prima visita al sito<br/>";
        }
        else
        {
            echo "Primo accesso: ".$_COOKIE["firstAccess"]."<br/>";
            if(isset($_COOKIE["lastAccess"]))
            {
                echo "Ultimo accesso: ".$_COOKIE["lastAccess"]."<br/>";
            }
        }

        setcookie("lastAccess", $nowts);
    ?>
    </center>

    <div style=" position: absolute; bottom: 1em;">
        <?php echo "Ora locale: ".$nowts; ?>
    </div>

    </body>
</html>

Abilitare l’esecuzione di script CGI con Apache

Lo standard CGI è utilizzato dai web server per interfacciarsi con le applicazioni esterne mediante un’interfaccia comune.
Quando viene richiesto al web server uno script CGI, questo lo esegue e restituisce al client il risultato dell’esecuzione.

Continua >