Manuale dell'utente
Versione 2.1 italiana
(C) 1997-2011 Simone Zanella Productions
http://www.szp.co
Tutti i diritti riservati.
Tutti i marchi che compaiono in questo
manuale sono registrati dai rispettivi proprietari ed appaiono solo allo scopo di documentare il prodotto.
Questo manuale è suddiviso nelle seguenti sezioni:
- introduzione
- installazione
- linea di comando
- Proteus Center
- avvio rapido
- sintassi di un programma Proteus
- commenti
- identificatori
- costanti
- metodi
- espressioni
- direttive
- funzioni
- funzioni di libreria
- trattamento stringhe
- calcoli su date
- operazioni su numeri interi e in virgola mobile
- operazioni logiche
- operazioni su file
- funzioni di sistema
- gestione strutture dati
- funzioni interattive (console)
- chiamate ISAPI
- funzioni DAO
- altre funzioni Win32
- funzioni definite dall'utente (UDF)
- collegamento di funzioni esterne a Proteus
- espressioni regolari
- versioni di Proteus
- esempi
- Proteus ed alcune problematiche di identificazione
automatica
- stile di programmazione
- debugging ed errori comuni
- Proteus Plus
- protezione di programmi Proteus
- gli altri processori di testo
- la compressione TIFF 4.0
- glossario
- bibliografia
- indice analitico
Proteus
Nella mitologia greca, un dio del mare, figlio di Oceano e Teti, che pasceva il gregge
di Nettuno e dava responsi; era anche celebre per la sua capacità di assumere molte forme
diverse.
Proteus - il linguaggio per l'elaborazione di testi - fa in scala ridotta esattamente
le stesse cose: fornisce responsi e trasforma i dati in ingresso nei dati in uscita.
Proteus è l'acronimo per PROcessore di Testo facilE
da USare (PROcessor for TExt Easy
to USe); infatti, uno dei punti fondamentali che stanno alla base del
linguaggio è la sua facilità d'uso; al contrario di altri processori di testo, la
sintassi di un programma Proteus è lineare ed intuitiva - anche senza conoscere il
linguaggio, è possibile comprendere cosa fa un programma e seguirne l'esecuzione.
Inoltre, sebbene Proteus sia particolarmente adatto per elaborare testi, può essere
impiegato altrettanto bene per manipolare file binari e svolgere centinaia di
altre funzioni.
Le caratteristiche salienti di questo linguaggio sono:
- linguaggio interpretato: Proteus si presenta come un interprete che
pseudo-compila in memoria i programmi, verificandone la correttezza sintattica, ed
eseguendoli successivamente sul file in ingresso;
- supporto multi-lingua: Proteus
è disponibile in diverse lingue;
- assenza di tipizzazione: tutte le
variabili possono essere impiegate come numeri interi, numeri in virgola mobile o
stringhe; le variabili sono interpretate sulla base delle funzioni ad esse applicate e
vengono mantenute le interpretazioni già richieste per diminuire, in caso di richieste
multiple, il tempo che andrebbe altrimenti perso nella ripetuta conversione da un tipo ad
un altro;
- nessuna struttura pre-allocata: tutti i dati su cui Proteus opera sono
allocati dinamicamente durante l'esecuzione; nessuna limitazione è imposta su:
ricorsione, massima dimensione dati, numero di variabili, ecc.;
- assenza di operatori: Proteus è un linguaggio completamente funzionale
- non esistono operatori; ciò elimina ogni ambiguità circa l'ordine di valutazione
delle espressioni ed evita l'utilizzo delle parentesi;
- estesa libreria di funzioni predefinite: Proteus non è un
toy-language, viene fornito con centinaia di funzioni già pronte per elaborare stringhe,
date, numeri, eseguire ordinamenti e ricerche e molto altro;
- supporto per accesso ai dati avanzato (DAO), pipe, socket di Windows,
porte seriali: nella versione Windows di Proteus è possibile accedere a
centinaia di funzioni specifiche per questo sistema operativo;
- sintassi omogenea e comprensibile: i nomi delle funzioni di libreria
sono state prese in buona parte dai linguaggi C, Clipper/Flagship e Assembly; l'utilizzo
di keywords di media lunghezza rende immediatamente comprensibili i programmi Proteus;
- supporto nativo per strutture dati evolute: vettori, code (semplici e
doppie), pile, mappe di bit, insiemi, alberi AVL sono già disponibili nativamente nel
linguaggio e non richiedono codice aggiuntivo per essere utilizzati;
- versione installabile come servizio di Windows e DLL ISAPI: Proteus
è disponibile come servizio di Windows oppure DLL ISAPI per l'utilizzo con
Microsoft® Internet Information Server;
- possibilità di creare proprie librerie di funzioni: è possibile
definire funzioni utente (UDF) in file separati ed includere il codice (anche
ricorsivamente e condizionalmente) all'interno di nuovi programmi; le UDF possono essere
utilizzate prima o dopo essere state definite;
- supporto nativo per file di testo Ms-Dos/Windows, Macintosh e Unix
(su tutte le versioni);
- supporto per tre modelli di date (inglese, americana, giapponese), con
controllo di consistenza e una completissima libreria di funzioni predefinite per
manipolare le date secondo il calendario gregoriano;
- impostazione dell'epoca per interpretazione automatica di date con anno
di due sole cifre;
- supporto per ore nel formato 12/24h;
- supporto per espressioni regolari semplici (Dos-like) ed estese (Unix-like),
su tutte le versioni;
- funzione di debug per verificare lo stato delle variabili durante
l'esecuzione.
Le versioni di Proteus che accompagnano questo manuale potrebbero comprendere
una o più delle seguenti varianti:
- Proteus Dos: versione compatibile con il sistema operativo Ms-Dos
5.0 o superiori; supporta i nomi di file lunghi sotto Windows, ma non
supporta tutte le funzionalità specifiche di Windows (socket, DAO, pipe,
ecc.);
- Proteus Win32: versione compatibile con il sistema operativo
Windows 95 o superiore;
- Proteus Service: versione dell'interprete installabile come
servizio;
- Proteus ISAPI: versione analoga a Proteus Win32, ma utilizzabile
attraverso Internet Information Server;
- Proteus Unix: sostanzialmente analoga alla versione Dos (escluse le
funzioni console).
L'interprete può essere compilato, a richiesta, con keyword e parole chiave
in italiano o inglese; la versione standard prevede parole chiave in inglese e
messaggi in italiano.