Genere: Ambiente di sviluppo
File: vp11demo.zip (demo completamente funzionale)
Dimensione: 1.761 MB
Costo: 249 $ US
Autore: fPrint UK Ltd
Reperibilità Internet: hobbes


Un po' di storia

Come tutti i prodotti innovativi nel mercato dell'Informatica (dall'Amiga alla Borland, da Computer Programming via via sino allo ZX81, tanto per rispettare l'ordine alfabetico), anche il Virtual Pascal ha avuto una genesi avventurosa e ricca d'imprevisti.
Tutto inizio' nel 1990 presso l'Istituto di Cibernetica di Kiev, ad un centinaio di chilometri dalla zona interessata dal disastro di Chernobyl. Vitaliy Miryanov vi lavorava come analista e sviluppatore di un sistema operativo multiutente a 32 bit reali da far girare su di un 486; tale attività prese Vitaly ed il suo team (una decina di persone in tutto) per tre anni, al termine dei quali era disponibile una piattaforma operativa scritta in assembler, in quanto per un tale sistema non era disponibile alcun compilatore ottimizzato a 32 bit. La parte sviluppata da Vitaly era il debugger di sistema, scritto anch'esso in assembler. Ora, tutti sappiamo che a fronte di un risultato ottimizzato in efficienza, velocità e spazio la programmazione in assembler richiede tempi di sviluppo decisamente maggiori: per questo motivo Vitaly inizio' nel 1993 a lavorare sul progetto di un compilatore Pascal a 32 bit compatibile Borland. Nonostante la cronica mancanza di device drivers per il neonato, l'Istituto continuo' a perseguire il proprio scopo del sistema operativo scritto in casa, abbandonando l'idea del compilatore in linguaggio ad alto livello. Vitaly, dal canto suo, non più vincolato da strette specifiche di sviluppo, decise di continuare lo sviluppo del compilatore Borland-compatibile nel proprio tempo libero, rendendolo pero' utilizzabile con il nuovo sistema operativo a 32 bit OS/2.
Utilizzando ogni minuto di assenza dal lavoro, nel gennaio 1995 rilascio' la prima versione Alpha. Compilatore e debugger erano scritti in assembler puro, mentre l'IDE era stato prodotto utilizzando lo stesso compilatore. I quattro mesi successivi vennero spesi per eliminare i bachi e rendere tutto l'ambiente più stabile, e terminarono con il rilascio della prima versione pubblica, il Virtual Pascal Beta 003.
Nel Giugno 1995, a causa delle degenerate condizioni di vita in Ucraina, Vitaly si decise a rilasciare il proprio prodotto su Internet, conscio che senza un aiuto ed un finanziamento esterno quel progetto era giunto oramai al capolinea.
Il mese successivo Allan Mertner della fPrint UK Ltd trovo' l'archivio (di soli 650 Kb) contenente la beta su Internet. Dal momento che gran parte dei progetti in Gran Bretagna sono sviluppati utilizzando Pascal o Delphi della Borland, avere la possibilita' di migrare la base installata attraverso un compilatore nativo OS/2 offriva un notevole potenziale a chiunque fosse interessato al sistema operativo dell'IBM. Dopo un attento esame del prodotto, che risultava ben scritto, robusto ed efficiente, Mertner invito' Miryanov in Gran Bretagna per un incontro-colloquio ai primi di Settembre, alla fine del quale venne stabilito' che Vitaly avrebbe ceduto tutti i diritti del prodotto alla fPrint, e ne sarebbe divenuto il responsabile del team di sviluppo dopo essersi trasferito a Londra con tutta la famiglia. La sua integrazione all'interno del gruppo della fPrint fu indolore, e già nei primi mesi del 1996 venne distribuito il Virtual Pascal per OS/2 v.1.00. Attualmente è disponibile la versione 1.10, e nel primo trimestre del 1997 verrà rilasciata una versione visuale sullo stile di Delphi.
Virtual Pascal per OS/2

Introduzione

La vita è bella perché è varia. Proprio per questo motivo la stravagante etnia che la gente normale chiama "programmatori" senza peraltro capir bene di cosa essi si occupino, tende a non accontentarsi di ciò che possiede ed a inventare nuove soluzioni a problemi noti. Ecco dunque perché nel momento in cui il PC offriva un linguaggio BASIC robusto e compilabile i programmatori si sono spinti verso il nuovo Pascal, mentre quando Windows appariva la sirena allettante per gli utenti alla ricerca di gadget colorati loro si sono rivolto ad OS/2. Le motivazioni sono semplici: un nuovo territorio si presta meglio ad affinare le proprie capacità "programmatorie", la propria fantasia, l'uso di nuove tecnologie per creare strumenti più efficienti o assolutamente nuovi.
Nel panorama informatico personale abbiamo avuto inizialmente strumenti di sviluppo a basso livello, quali assembler (e l'orribile debug del DOS), seguiti a breve tempo dal BASIC, quindi dal Pascal, ed infine dal C, con i vari dialetti ad oggetti. Poi, stranamente è iniziato una sorta di "ricorso storico" in cui veniva predicata l'efficienza del 32-bit, con conseguente nuova spinta verso l'Assembler ottimizzato per i nuovi processori, quindi il lancio di prodotti visuali sempre nella stessa tendenza: Visual Basic, Visual C e Delphi. Tutti coloro che hanno tentato coraggiosamente la carta OS/2 attendevano pertanto con ansia l'estensione di questo ragionamento, estensione che è prontamente giunta da mamma IBM con Visual Age C, C++ e BASIC: restava dunque fuori il solo Pascal. Nell'ambito dei Personal Computer, Pascal significa essenzialmente Borland Pascal (o Turbo Pascal, se preferite): si trattava quindi di creare un compilatore in grado di analizzare correttamente un sorgente Borland e tradurne gli effetti attraverso un codice ottimizzato a 32 bit per OS/2. La risposta non si è fatta attendere: SpeedSoft ed fPrint hanno sviluppato un sistema integrato per la compilazione di programmi Turbo Pascal davvero invidiabile.
Questo mese vi presenteremo il Virtual Pascal della fPrint, un pacchetto che ogni turboprogrammatore appassionato di OS/2 dovrebbe avere.

Caratteristiche del sistema

Il Virtual Pascal per OS/2 è un ambiente di sviluppo completo, composto di un IDE sviluppato con Turbo Vision e perfettamente conforme al Borland Pascal, un compilatore ottimizzato a 32 bit in grado di produrre codice per Pentium, uno switch per attivare l'ottimizzazione per velocità e/o per grandezza dell'eseguibile, un linker che consente di generare applicazioni a 32 bit puri a schermo intero, in finestra o applicazioni di tipo PM, con eseguibili compressi in modalità ExePack1 (compatibili OS/2 2.1) ed ExePack2, nonché di generare DLL.

Viene fornito un compilatore di risorse, un debugger simbolico integrato nell'IDE con 14 differenti viste sui dati, esiste la possibilità di creare e registrare macro; l'editor è multifinestra con supporto della clipboard.
La versione in mio possesso presenta una serie di esempi ed uno stralcio del manuale cartaceo (365 pagine). Sul sito web della fPrint sono presenti gli aggiornamenti, le patches eventualmente rilasciate ed il software sviluppato da terze parti per il Virtual Pascal: tra gli altri pacchetti voglio ricordare una libreria di funzioni grafiche con interfaccia BGI perfettamente allineata all'ambiente, due librerie per la scrittura di applicazioni sotto TCP/IP, un visualizzatore di archivi compressi, un'interfaccia per database mSQL e molto altro ancora.
Se a tutto ciò si aggiunge la conformità con le estensioni dell'Object Pascal di Delphi, la disponibilità di una libreria PM sul tipo della OWL, la compatibilità con i tools della Turbo Power per Pascal e Delphi, una libreria completa di funzioni matematiche per gestire numeri complessi, matrici, FFT, regressioni e molto altro come indicato nel riquadro, si ha l'idea di un ambiente decisamente potente e stabile. La domanda successiva è: quanto potente, e quanto stabile?

Virtual Pascal su strada

Detto fatto, ho installato il Virtual Pascal sul mio fido PC ed ho aperto l'IDE. In pochi minuti ho dimenticato di essere sotto OS/2 (con due task di analisi numerica aperti in background) tanta era la semplicità e l'agilità del compilatore. Per prima cosa ho ripreso alcuni programmi di calcolo scritti tempo fa sotto DOS ed ho controllato l'attendibilità della compatibilità: devo precisare che in genere non uso tecniche di programmazione "sporche", ma il vedere il sorgente compilare immediatamente senza errori mi ha strappato un sorriso di ammirazione. Interessante! Lancio l'eseguibile per valutarne le prestazioni e la gioia si trasforma in dubbio. No, mi dico, c'è qualcosa che non va... Installo la unit TIMER, creata in TurboPascal per controllare il profiling dei programmi, e ricompilata immediatamente l'applicazione controllo breakpoint e tempi d'esecuzione. Nessun errore, il Virtual Pascal crea eseguibili più veloci mediamente tra il 100% ed il 300% rispetto al TurboPascal 7.0 a 16 bit.
La compatibilità generale c'è. Proviamo qualcosa di più pesante...

Strutture dati. Oltre ai vari tipi reali è finalmente presente anche il COMP, che consente di utilizzare numeri interi con precisione maggiore del LongInt (8 byte). E allora avanti con la cattiveria: compatibilità con la memoria segmentata in modalità reale, ovvero la solita antichissima storia dei segmenti di dati di 64 Kbyte al massimo. Provo a dichiarare un array di 100.000 interi: compilato senza errori. Assegnazione di ciascun elemento ad una variabile iterativa di tipo LongInt: nessun errore. Manipolazione casuale degli elementi: nessun problema. Sempre più euforico, dichiaro un array di 2 MILIONI di elementi interi, assegno a ciascuno un valore compreso nel range dell'Integer con un ciclo For-Next, chiamo le funzioni matematiche della libreria per calcolare numero di elementi assegnati, somma, media aritmetica e deviazione standard. La compilazione è OK. Lancio il programma, e mi vengono forniti i valori esatti, con il solito task di analisi numerica in background, in meno di un secondo. Niente male davvero!

Testiamo le altre caratteristiche. Il demo relativo alla programmazione multithread è di una semplicità disarmante, e affascinante al tempo stesso: viene eseguita una "corsa di topolini" in modalità semigrafica in una finestra testuale di OS/2. Ad ogni "topolino" è naturalmente associato un thread, che procede assieme agli altri spostando i caratteri relativi al proprio "personaggio" sullo schermo. Il sorgente relativo all'esempio è breve e ricco di commento, mentre l'help in linea ed il manuale offrono un valido aiuto nell'interpretazione della sintassi dei comandi più esclusivi relativi al sistema operativo (controllo thread, semafori...)

Grafica. E' stata da poco rilasciata una nuova libreria di funzioni corrispondente alla BGI, nomi e prototipi di funzione compresi. Ad essa è associato un file dimostrativo in tutto e per tutto corrispondente al "DEMO.PAS" utilizzato per testare la sezione grafica del TurboPascal; basta caricare e compilare il file per avere il medesimo output al quale Borland ci aveva abituati. Certo, la velocità è un po' inferiore poiché è necessario passare attraverso l'emulatore ed il gestore video anziché accedere direttamente all'hardware grafico, ma il risultato non delude. E' stato incluso anche un programma che spiega come simulare la scrittura diretta in memoria grafica. Il programma, che riproduce un fuoco che arde con tanto di lingue guizzanti in tempo reale, alla risoluzione di 320x200 pixel ed a 256 colori, è scritto quasi interamente in pascal, con pochissime chiamate in assembler. L'autore del programma fa presente che, codificando il tutto in assembler, è possibile ottenere un drastico aumento di velocità.
Ovviamente è presente anche un fornito assortimento di sorgenti ed eseguibili che esemplificano la programmazione sotto PM, tratti dal libro "The art of OS/2 programming", una serie di esempi sulla programmazione ad oggetti e la sezione relativa alla programmazione di TurboVision.

Conclusioni

Si sentiva la mancanza di uno strumento di programmazione dedicato al pascal, potente e maneggevole come un familiare turbo linguaggio, ma robusto, veloce ed affidabile. Naturalmente non ci troviamo davanti alla panacea contro tutti i mali: è possibile migliorare ancora questo prodotto, dandogli maggiore flessibilità nelle applicazioni grafiche ed aggiungendo un supporto per i componenti visuali di Delphi. Ho parlato con il team di sviluppo della fPrint, e mi hanno assicurato che entro il primo quadrimestre del 1997 avremo l'uno e l'altro, nella versione 2.0 e nelle seguenti. Ovviamente chi già possiede una copia di Virtual Pascal avrà diritto ad un trattamento di favore nell'upgrade, nonostante il prodotto sia commerciale... Se a questo si aggiunge che svariate società nel mondo hanno già tentato con successo il porting delle proprie applicazioni sotto OS/2 ottenendo nel contempo notevoli incrementi di prestazioni, è facile rendersi conto di come attualmente il Virtual Pascal rappresenti una pietra di paragone con la quale i programmatori seguaci di Wirth dovranno necessariamente confrontarsi.


a cura di Luigi Morelli

- [ Pagina precedente ] - - [ Sommario ] - - [ Just WARP! homepage ] - - [ Pagina successiva ] -