[ Content | Sidebar ]

Cos’è il codice sorgente di un software?

February 26th, 2009

Software e Codice Sorgente

Un software consiste in una serie di istruzioni scritte da un essere umano che permettono all’elaboratore di eseguire determinati compiti. Queste istruzioni normalmente vengono redatte utilizzando un linguaggio di programmazione, caratterizzato da precise regole sintattiche e formali che il programmatore dovrà applicare in fase di sviluppo.
Perché questo linguaggio scritto in un codice intelligibile possa essere eseguito da un elaboratore, è necessario che venga compilato od interpretato da un altro software che converta i comandi del programmatore in linguaggio macchina.
La maggior parte dei software che gira sui nostri computer ha subito un processo di compilazione. Tale operazione, operata mediante un compilatore, produce un codice eseguibile dalla macchina, che ha il vantaggio di essere creato secondo i parametri dell’architettura hardware dell’elaboratore in cui verrà eseguito e pertanto permette di offrire eccellenti prestazioni in termini di velocità e ottimizzazione delle risorse.
Il processo di compilazione di un software si svolge secondo il seguente schema:

Schema del processo di complilazione di un programma

Il codice sorgente scritto dal programmatore viene tradotto dal compilatore in linguaggio macchina, rendendo il programma eseguibile dall’elaboratore. Il processo di compilazione è univoco; è necessario possedere il codice sorgente se si desidera apportare modifiche o correzioni ad un software già compilato.
Un software può essere molto semplice e formato da poche righe di codice, oppure estremamente complesso, come, ad esempio, un sistema operativo.
Riportiamo di seguito il codice sorgente di un banale programma scritto in linguaggio C che, avviato, mostra sullo schermo la scritta “Hello, world”:

#include <stdio.h>
main()
{
printf( "Hello, world" );
}

Il file eseguibile risultato dalla compilazione di questo programma perde la struttura logica e formale esplicitata dal programmatore e si converte in alfabeto binario, composto da una lunghissima serie di 0 e 1, che costituisce la lingua madre dei microprocessori.
Evidentemente il processo di compilazione è irreversibile, rendendo impossibile la decifrazione dei comandi originali scritti dal programmatore; se non si dispone della sorgente di un software pertanto, è possibile solamente utilizzare il programma, ma non studiarne il funzionamento e apportare eventuali modifiche o miglioramenti (esistono tuttavia delle complicate tecniche di reverse engineering, spesso illegali poiché violano brevetti, che permettono di studiare il funzionamento interno di un software – ma non di ottenere il codice sorgente).

___

Questo articolo è tratto dalla mia Tesi di Laurea:

Alberto Betella, “Open Source, Free Software e Podcasting: l’esperienza di Pluriverisadio”, Università degli Studi di Bergamo, A.A. 2005/2006.

“YellowJug” font

February 24th, 2009

An example of YellowJug font

An example of YellowJug font

Some years ago (2003) I designed a typeface and called it YellowJug (the name was inspired to a painting by Pablo Picasso).

Because of its mixing of capital and small letters, YellowJug font is not meant to be used with long texts. It is particularly suitable for short titles and slogans, as well as web animations and menus.

YellowJug font is free and released under Creative Commons (By-Nc-Nd) license and is available both in true type and open type flavours (the open type version is recommended in MAC OS X systems).

Download now YellowJug font!

Just for fun, you can also see the original handwritten glyphs I designed and eventually vectorialized.

Free facelift for your webpages

February 22nd, 2009

sas

A common solution in order to use freely typefaces while designing a web page, is creating graphical representations of the text content;  this solution apparently works well, however it is not efficient and not easy to update when the text content changes, as each text must be written or modified manually through an image manipulation software.

For this reason web designers normally use a narrow range of fonts in their web pages and usually adopt web-safe fonts.

Nevertheless, there are some interesting alternatives. Facelift is an excellent solution in order to use custom fonts in your web pages writing simple text while not dealing with images creation and updating.

Facelift Image Replacement (or FLIR, pronounced fleer) is an image replacement script that dynamically generates image representations of text on your web page in fonts that otherwise might not be visible to your visitors. The generated image will be automatically inserted into your web page via Javascript and visible to all modern browsers. Any element with text can be replaced: from headers (<h1>, <h2>, etc.) to <span> elements and everything in between!

Give a look to these examples!

Facelift is free software released under GNU/GPL license. It requires a quite common web server configuration (PHP along with GD libraries with freetype and PNG support enabled) and can be freely downloaded from the official web page.