Clipper -  · 2010. 2. 4. · Clipper 5.0 Produttore: Nantucket Corporation Distributore: Algol...

8
Clipper 5.0 di Gabriele Romanzi I n occasione dell'ultima edizione dello SMAU la Soc. Algol, distributrice per J'ltalia dei prodotti Nantucket, ha pre- sentato la nuova versione del compila- tore. Ciipper, intorno alla quale si era creata un'attesa spasmodica; l'annun- cio di questa nuova versione risale in- fatti a circa un anno fa, ma l'effettiva uscita sul mercato è stata ritardata dalla necessità di correggere alcuni problemi riscontrati nella versione di test rilascia- ta ad alcuni sviluppatori Clipper negli Stati Uniti. Fino ad oggi, con la precedente ver- sione rrSummer 87», il Clipper era un compilatore per il linguaggio dBase a cui aggiungeva delle proprie funzionalità che lo rendevano adatto per lo sviluppo di applicazioni commerciali anche molto complesse, mentre adesso ha assunto una sua fisionomia ben 'precisa staccan- 118 dosi dalla compatibilità a tutti i costi con il dBase e, vista la fama che è riuscito a guadagnarsi «sul campo», si propone come il nuovo standard nel campo dei prodotti per OBMS in ambiente MsOos. Clipper 5.0 Produttore: Nantucket Corporation Distributore: Algol S.p.A. Via Feltre, 28/6 - 20132 Milano Tel. 02/26411411 Prezzi (lVA esclusa): Clipper 5.0 L. 1.590.000 Upgrade da versione Summer 87 a 5.0 L. 430.000 Il pacchetto e /'installazione Il Clipper 5 arriva in una scatola di car- tone rigido che contiene due custodie estraibili, la prima destinata ai manuali e la seconda alla custodia dei floppy e di una busta con delle brochure riguardanti offerte promozionali relative ad alcuni servizi aggiuntivi della Nantucket (hot-li- ne, riviste, ecc.). La manualistica si presenta più corpo- sa rispetto a quella della versione pre- cedente; i manuali sono cinque (più un «Quick Reference» di formato tascabi- le). rilegati ad anelli ad eccezione del «Reference» che invece ha una rilega- tura a colla come un libro di tipo tradi- zionale. Quest'ultimo è il vero e proprio manuale di riferimento del linguaggio, comprendente oltre alla sintassi com- pleta dei comandi e delle funzioni anche MCmicrocomputer n. 103 - gennaio 1991

Transcript of Clipper -  · 2010. 2. 4. · Clipper 5.0 Produttore: Nantucket Corporation Distributore: Algol...

  • Clipper 5.0di Gabriele Romanzi

    In occasione dell'ultima edizione delloSMAU la Soc. Algol, distributrice perJ'ltalia dei prodotti Nantucket, ha pre-sentato la nuova versione del compila-tore. Ciipper, intorno alla quale si eracreata un'attesa spasmodica; l'annun-cio di questa nuova versione risale in-fatti a circa un anno fa, ma l'effettivauscita sul mercato è stata ritardata dallanecessità di correggere alcuni problemiriscontrati nella versione di test rilascia-ta ad alcuni sviluppatori Clipper negliStati Uniti.

    Fino ad oggi, con la precedente ver-sione rrSummer 87», il Clipper era uncompilatore per il linguaggio dBase acui aggiungeva delle proprie funzionalitàche lo rendevano adatto per lo sviluppodi applicazioni commerciali anche moltocomplesse, mentre adesso ha assuntouna sua fisionomia ben 'precisa staccan-

    118

    dosi dalla compatibilità a tutti icosti conil dBase e, vista la fama che è riuscitoa guadagnarsi «sul campo», si proponecome il nuovo standard nel campo deiprodotti per OBMS in ambiente MsOos.

    Clipper 5.0

    Produttore:Nantucket CorporationDistributore:Algol S.p.A.Via Feltre, 28/6 - 20132 MilanoTel. 02/26411411Prezzi (lVA esclusa):Clipper 5.0 L. 1.590.000Upgrade da versioneSummer 87 a 5.0 L. 430.000

    Il pacchetto e /'installazione

    Il Clipper 5 arriva in una scatola di car-tone rigido che contiene due custodieestraibili, la prima destinata ai manuali ela seconda alla custodia dei floppy e diuna busta con delle brochure riguardantiofferte promozionali relative ad alcuniservizi aggiuntivi della Nantucket (hot-li-ne, riviste, ecc.).

    La manualistica si presenta più corpo-sa rispetto a quella della versione pre-cedente; i manuali sono cinque (più un«Quick Reference» di formato tascabi-le). rilegati ad anelli ad eccezione del«Reference» che invece ha una rilega-tura a colla come un libro di tipo tradi-zionale. Quest'ultimo è il vero e propriomanuale di riferimento del linguaggio,comprendente oltre alla sintassi com-pleta dei comandi e delle funzioni anche

    MCmicrocomputer n. 103 - gennaio 1991

  • una parte introduttiva in cui vengonoesposte le principali caratteristiche dellaprogrammazione con il Clipper 5; capi-toli specifici sono inoltre dedicati agli«statement» del linguaggio, alle classied alle direttive per il pre-processore (suquesti ultimi punti torneremo in detta-glio nel seguito).

    Una prima importante novità di que-sta nuova versione è la presenza, all'in-terno del pacchetto, delle Norton Gui-des con i relativi data base per il Clipper5, in cui sono duplicate le informazionicontenute nella manualistica cartacea;per chi non conoscesse questo prodot-to ricordiamo che si tratta di un pro-

    PROVACLiPPER 5.0

    gramma TSR (Terminate and Stay Re-sident) realizzato dalla Peter NortonComputing che permette di avere a di-sposizione, alla semplice pressione diun tasto funzione, informazioni utili du-rante lo sviluppo di un programma, qualila sintassi dei comandi, delle funzioni,ecc ..

    Storia del dBASERiassunto delle puntate precedenti

    di Francesco Petroni

    Quando nacque il PC IBM, nei primis-simi anni '80, sembrava che il mondoche stava per nascere attorno ai PC sareb-be ruotato attorno al linguaggio Basic, l'u-nico che riusciva a vivere su un hardware,all'epoca, così limitato.

    Fortunatamente, già dopo pochi mesi,vennero alla luce alcuni prodotti che dauna parte sfruttavano al meglio le caratte-ristiche hardware, ancora non ben com-prese dagli utilizzatori (i primi PC IBM di-sponevano di 64 kbyte, indirizzabili dal Ba-sic, ma erano espandibili fino a 640). e dal-l'altra erano utilizzabili molto più facilmen-te e direttamente anche da utenti alle pri-me armi (che cominciavano ad esseremolto numerosi dato che anche le aziendesi erano «accorte» che esistevano i PC).

    Uno dei primi prodotti che ebbero note-vole successo fu il dBASE 111,sviluppatodalla Ashton Tate, sulla base di un prece-dente dBASE Il, nato un paio di anni pri-ma, per piattaforme 8 bit, e riadattato,dapprima come dBASE Il e poi appuntocome dBASE 111,anche al PC quando que-sto apparve.

    Pressoché contemporanea è la nascitadel PC classe XT, e quindi anche il discorigido (inizialmente si partì da misure 10mega, mentre oggi la misura minima è co-me noto di 20 megal cominciò ad essereconsiderato, per alcune attività, uno stan-dardo

    Il dBASE si diffuse moltissimo non solotra gli utilizzatori finali, che ne apprezzava-no la facilità d'uso, sia dall'ambiente «pun-tino», sia dall'ambiente ASSIST, ma anchedai tecnici sviluppatori, che riuscivano arealizzare,con le sue funzionalità, procedu-re di tipo gestionale (che richiedono nume-rosi archivi e calcoli non di tipo scientifico).in un tempo sensibilmente inferiore aquello richiesto dagli altri linguaggi.

    Il successo del dBASE fu tale che nu-merosi altri produttori svilupparono decinedi pacchetti ausiliari che si affiancavano aldBASE per migliorarne funzionalità o pre-stazioni.

    Una delle categorie di prodotti che ebbepiù successo fu quella costituita dai «com-pilatori», che fondamentalmente risolveva-

    MCmicrocomputer n. 103 - gennaio 1991

    no due problemi legati all'utilizzo del dBA-SE.

    Il primo è quello della velocità, che è ov-viamente sensibilmente maggiore in uncompilatore che non nel dBASE intepreta-to. Il secondo è quello della diffusione delpacchetto applicativo, che, se sviluppatosotto dBASE comporta la necessità perl'utente finale, di acquistare anche la copiadel dBASE.

    Tra i compilatori quello che ha avuto piùsuccesso, soprattutto tra i programmatori,è stato il Clipper della Nantucket, distribui-to in Italia dalla Algo!.

    Si è trattato di un successo crescentecha ha portato il Clipper ad occupare il pri-mo posto come strumento per la program-mazione di applicativi di tipo gestionale,soppiantando via via il Basic, che all'inizionon aveva alternative, ma che, come det-to, era poco adatto per le applicazioni chelavorano su archivi, e il Cobol, che fu all'i-nizio molto utilizzato dai programmatoriche provenivano dal mondo «mainframe»ma che non è stato mai molto a suo agiosui PC.

    E il successo è dimostrato anche dal pro-gressivo distacco del Clipper dal dBASE.Nella prima versione Clipper riconoscevagli statement dBASE e archivi in formatodBASE.

    Nella seconda, denominata Summer 87(ma i file sono datati dicembre 1987). ven-nero introdotti funzionalità e comandi deltutto autonomi, che ne consentono un usoindipendente dal dBASE. In particolare fuapprezzata la disponibilità di comandi «direte», presenti direttamente nel pacchettobase. E questo accadeva in un momento incui hardware e software di rete comincia-vano ad essere affidabili e quindi adatti adaccogliere applicazioni gestionali multipo-stazione.

    Altro fenomeno connesso al successodel Clipper fu la proliferazione delle Librerieaggiuntive, che in pratica forniscono diret-tamente soluzioni ai vari problemi «a fat-tore comune» che un programmatore Clip-per si trova ad affrontare. Ad esempio lagestione del mouse, la generazione di me-nu pop-down, l'aggancio a routine grafiche.

    La disponibilità e la facile reperibilità del-le librerie, unita alla possibilità per il pro-grammatore di svilupparne di proprie, an-che in linguaggio C, hanno definitivamenteconsolidato la posizione di predominio delClipper in quelle software house che svi-luppano programmi applicativi per PC o perreti per PC e che lo fanno in maniera ,

  • PROVACLiPPER 5.0

    lò!

  • /I Debugger.

    /I Label Generator. ~

    PROVA

    CLiPPER 5.0

    te di ridurre a piaci mento la dimensionedel file EXE contenente il modulo prin-cipale del programma.

    A questo proposito, per permettere losviluppo di applicazioni in rete, vienefornita una versione PLL della libreriaClipper che può essere memorizzata inunica copia sul server mentre nelle sin-gole workstation basta memorizzaresoltanto l'eseguibile senza che ad essovenga aggiunto il «fardello» della libre-ria, producendo quindi un file EXE di di-mensioni ridotte.

    Ad esempio, il seguente sempliceprogramma:

    CLEAR@ 10,10 SAY "CIAO, MONDO !"QUIT

    che compilato e linkato nella manieratradizionale produce un eseguibile di piùdi 140 Kbyte, se lo compiliamo e linkia-mo con l'opzione produce uneseguibile di poco più di 7 Kbyte!

    Anche per l'utilizzo della PLL conte-nente la libreria del Clipper il program-matore non è tenuto a pagare alcun di-ritto alla Nantucket, così come è sem-pre stato nella filosofia di questo pro-dotto.

    È stata migliorata in maniera sensibilel'ottimizzazione del codice, soprattuttoper quanto riguarda parti di codice chepossono non venir mai eseguite, e lagestione delle espressioni; inoltre leopzioni che il programmatore utilizza co-stantemente nella linea di comando delcompilatore possono essere memoriz-zate in una variabile dell'environment.

    La nuova versione del compilatoreClipper è compatibile a livello di sorgen-ti con le precedenti, permettendo inquesto modo al programmatore di ri-compilare le applicazioni già sviluppatesfruttando le nuove potenzialità offertedalla versione 5; la stessa compatibilità

    MCmicrocomputer n. 103 - gennaio 1991

    non è purtroppo assicurata verso le li-brerie di terze parti (DGE, Artful, ecc ...)che richiederanno al programmatore l'u-pgrade verso le versioni specifiche, checomunque cominciano già ad essere di-sponibili sul mercato.

    In ogni caso la Nantucket è già proiet-tata verso il futuro che si presenta sem-pre più distaccato rispetto alla compa-tibilità finora mantenuta con il dBasedella Ashton Tate; ci sono infatti alcunicomandi ed alcune funzioni, contraddi-stinte nella manualistica da un asteri-sco, che la Nantucket afferma di averlasciato solo per compatibilità con laversione precedente del Clipper e di cuisconsiglia l'uso da ora in poi se si vuoleche le applicazioni scritte con la versio-ne 5 siano compatibili con quelle future.

    A proposito dei comandi disponibili,una delle più grosse novità di questaversione 5 è la possibilità da parte del-l'utente di ... ridefinirli; il compilatore, in-fatti, quando viene lanciato va a cercareun file denominato STD.CH in cui sonodefiniti tutti i comandi del linguaggio (alivello di sintassi) e l'utente ha la pos-sibilità sia di modificare questo file sia dicrearne di nuovi (indicandoli con un'op-portuna opzione al compilatore): in que-sto modo oltre alle User-Function delleprecedenti versioni, il programmatoreha a disposizione uno strumento per lacreazione di User-Command, strumentoda usare comunque con oculatezza (civuole poco a trasformare un comandoGET in una APPEND) ma che può offriregrosse potenzialità in fase di creazionedi applicazioni complesse.

    Il file STD.CH è composto da una se-rie di direttive di compilazione: è que-sta un'altra delle novità del Clipper 5,che comprende ora un pre-processoresimile a quello del linguaggio C; trami-te degli «Header-file» (altra analogiacon il C) è possibile definire dei nuovicomandi da parte del programmatore

    (#COMMAND), definire delle costanti(#DEFINE), inglobare un file esternonel sorgente attualmente in compilazio-ne (#INCLUDE) e compilare in manieraselettiva sezioni di codice al verificarsio meno di una determinata condizione(# IFDEF...#1 FNDEF ...).

    Il compilatore ha quindi ora due di-stinte fasi: la fase del pre-processore ela fase del compilatore vero e proprio;nella prima di queste due fasi il pre-pro-cesso re scandisce il sorgente alla ricer-ca delle direttive di compilazione e letrasforma in codice Clipper pronto peressere compilato, insieme al resto delprogramma, nella seconda fase; tramitel'opzione

    della linea di comandodel compilatore è possibile ottenere unfile con suffisso .PPO (Pre-ProcessorOutput) contenente l'output della fasedi pre-processamento in modo da potercontrollare cosa viene passato al modu-lo che effettua la compilazione vera epropria.

    In un sistema di sviluppo come quellodel Clipper 5 non poteva mancare unMake, owero una utility per la gestionedi programmi composti da molti modulisorgenti, header e librerie; il Make ridu-ce il tempo richiesto per la compilazionedi grosse applicazioni in quanto, basan-dosi su una serie di regole di dipenden-ze tra file (il cosiddetto make-file), com-pila di volta in volta solo le parti di co-dice che sono cambiate dall'ultima com-pilazione effettuata (oltre a quelle ad es-se legate): in congiunzione con la pos-sibilità vista in precedenza del linkincrementale per mezzo del RTlink ciòcomporta un notevole aiuto al program-matore in termini di risparmio di tempodi lavoro.

    RMAKE è il nome del Make fornitocon il Clipper 5; è molto simile a quellodello Unix a cui aggiunge delle caratte-ristiche specifiche per l'ambiente Clip-per. Quando viene lanciato opera in due

    121

  • PROVACLiPPER 5.0

    L'utifity OBU con il Browse di un archivio.

    fasi: nella prima (parsing) viene analiz-zato il make-file alla ricerca delle regoledi dipendenza da applicare, mentre nellaseconda (making) queste regole vengo-no applicate ai file la cui data (o ora) ècambiata dall'ultima compilazione.

    Le utilityCon il C1ipper 5 vengono fornite una

    serie di utility per facilitare la fase di svi-luppo e creazione di un'applicazione; al-cune di queste sono già note ai pro-grammatori Clipper come, ad esempio,il DBU (Data Base Utility): si tratta di unprogramma (scritto in Clipper) per lacreazione e la gestione interattiva degliarchivi dati, degli indici e dei file con levarie «viste» sui dati.

    Tramite dei menu a tendina l'utentepuò selezionare i file su cui intende ope-rare (anche su più aree di lavoro) edaprirli per la consultazione o la modifica(sia dei dati che delle strutture); è pos-sibile impartire comandi di ricerca(Seek, Locate, Goto, Skip). stabilire re-lazioni tra file (Set Relation). setta re deifiltri (Set Filter) e stabilire una lista dicampi del data base attualmente selezio-nato su cui operare.

    Oltre che come strumento per la ge-stione dei file, DBU è utile a chi è al pri-mo approccio con il Clipper come tuto-riai per l'utilizzo delle funzioni ACHOI-CEO e DBEDITO con le quali sono statirealizzati i menu ed il meccanismo di vi-sualizzazione del contenuto degli archi-vi; in maniera analoga, per chi viene dalmondo dBase ed è abituato a lavorarecon le funzionalità CREATE MODIFYREPORT e LABEL, può essere di ausiliol'utility RL (Report and Label). anch'essascritta in Clipper.

    Con RL è possibile creare in manierainterattiva file di report (.FRM) e label(.LBL) da utilizzare poi con i comandiREPORT FORM e LABEL FORM per la

    122

    generazione di tabulati di stampa o eti-chette; con un'interfaccia utente similea quella vista per DBU l'utente può de-finire i parametri di formattazione dellapagina (o dell'etichetta) e definire gruppiper unire informazioni provenienti dauno o più data base in relazione tra di lo-ro.

    Dell'utility per la documentazione on-line (Norton Guide) abbiamo già parlatonella descrizione del programma di in-stallazione; rimane da dare solo un cen-no al Program Editor (PE). un sempliceeditor che non ha certo le potenzialitàper proporsi come strumento per la ste-sura di programmi complessi (al massi-mo per la modifica «al volo» di qualchelinea) ma che può essere considerato,dal momento che ne vengono forniti isorgenti, come un esempio di realizza-zione di un semplice editor da inserirenei propri programmi (ad esempio perpermettere all'utente finale di modifica-re il Config.sys) basato sulla funzioneMEMOEDITO del Clipper.

    Le altre novità del linguaggioIl linguaggio Clipper disponeva già di

    una nutritissima serie di comandi e fun-zioni che ne consentivano l'uso non so-lo per lo sviluppo di applicativi per la ge-stione di basi di dati (suo compito prin-cipale) ma anche per altri settori, essen-do dotato di tutte le principali strutturedi un moderno linguaggio di program-mazione; in questa nuova versione so-no state aggiunte delle importanti novi-tà, frutto soprattutto del ,deedback» ri-cevuto dal popolo dei programmatoriClipper che spesso lamentavano qual-che carenza in alcune componenti dellinguaggio.

    Innanzitutto alcune significative no-vità sono state introdotte tra gli opera-tori, che hanno ereditato dal linguaggioC l'assegnazione «in-line» (:=) utilizza-

    bile dove è consentito l'uso di un'e-spressione, l'incremento ed il decre-mento (++, - -) sia prefisso che post-fisso oltre alla possibilità di combinazio-ne degli operatori matematici con quellodi assegnazione (+=,-=,*=,/=). Il pas-saggio dei parametri ad una subroutinepuò awenire ora sia per valore che perriferimento (tramite l'operatore @) enon è più necessario che il numero diparametri di una funzione coincida con ilnumero di argomenti passati (è possi-bile, ad esempio, chiamare una generi-ca funzione con un comando comeTEST(

  • Il Form Generator.

    Selezione di file. ~

    PROVACLiPPER 5.0

    vengono compilati non come le macrodurante l'esecuzione del programmama al momento stesso della compilazio-ne di quest'ultimo.

    Gli array, con il Clipper 5, possono oraessere anche multidimensionali, nidifi-cati {array di arrayl. possono essere ge-stiti per riferimento permettendo a piùvariabili di riferirsi allo stesso array (l'a-rea di memoria occupata dall'array vie-ne deallocata soltanto quando l'ultimoriferimento ad esso cessa di esistere) epossono essere dimensionati dinamica-mente permettendo così la gestione distrutture di dati quali liste e code; per lainizializzazione e la creazione degli arraypossono ora essere utilizzate delle co-stanti (anche di tipo carattere) e nel ca-so di funzioni definite dall'utente gli ar-ray possono essere ritornati come risul-tato.

    Tra le operazioni possibili sugli arrayvi segnaliamo la possibilità di metterli aconfronto con l'operatore di uguaglianza(=l. scandirli con la funzione AEVAL()che calcola un Code Block per ogni ele-mento, duplicarli, copiarli ed ordinarli(con la funzione ASORT()}; un determi-nato valore può essere ricercato in unarray con la funzione ASCAN().

    Nella gestione dei file è stato fornitoal programmatore un nuovo strumentoche permette di svincolarsi, volendo,dalla struttura dei .DBF retaggio deldBase; è infatti ora possibile svilupparedei propri driver tramite i quali gestire,in maniera trasparente, diversi «engine»di interfaccia verso formati nuovi e de-finibili dall'utente.

    Una importante innovazione del Clip-per 5, sebbene in forma ancora limitata,è l'introduzione della programmazioneper oggetti; come si affretta a precisareil manuale, nel capitolo relativo a questoargomento, il Clipper 5 non è un lin-guaggio object-oriented, ma ha al suointerno una implementazione di struttu-

    MCmicrocomputer n. 103 - gennaio 1991

    re basate su questa teoria (si vociferacomunque di successive versioni delClipper specifiche per OOP).Un , in Clipper, è un insiemecomplesso di dati con una struttura pre-definita e caratteristiche comuni; conquesta versione del compilatore vengo-no forniti un numero limitato di questioggetti, dette , realizzati alloscopo di supportare particolari operazio-ni del Clipper (non e purtroppo possibiledefinirne di nuovi).

    Il tipo di un oggetto è formalmente lasua classe e le informazioni contenutein un oggetto, insieme alle operazioniad esso applicabili, variano in funzionedella classe dell'oggetto; per ogni clas-se è possibile, tramite una speciale fun-zione di creazione, generare nuovi og-getti (istanza della classe) che possonoessere manipolati per riferimento (comegli array).

    Abbiamo visto che ogni classe defi-nisce un insieme di operazioni possibilisui propri oggetti; queste operazionivengono eseguite tramite l'invio di mes-saggi utilizzando l'operatore ; adesempio, per inviare un messaggio al-l'oggetto «Generic» la sintassi è:

    Generic: PageDnO

    In questo caso «Generic» è il nomedella variabile che contiene il riferimen-to all'oggetto, mentre «PageDn()) è il, cioè l'operatore che spe-cifica l'operazione che deve essere ese-guita sull'oggetto (in questo caso unoscroll di una pagina).

    Le classi predefinite presenti in que-sta versione sono:- Error Class, che fornisce oggetti con-tenenti informazioni sugli errori di run-time;- Get Class, che fornisce oggetti perl'editing interattivo di campi di databasee variabili (può essere utilizzato per im-

    plementare i comandi @ ... GET eREAD);- TBrowse Class, che fornisce oggettiper la visualizzazione e consultazione didati in forma tabellare (con l'utilizzo dicode-block è possibile creare degli stru-menti per l'acquisizione, consultazionee gestione interattiva di insiemi di dati);- TBColumn Class, che fornisce ogget-ti a «colonna» per oggetti TBrowse, ov-vero oggetti contenenti le informazioninecessarie a definire una colonna di datidi un oggetto TBrowse.

    Tramite queste classi (e relativi og-getti) il lavoro del programmatore vieneenormemente semplificato permetten-do, una volta acquisita una certa dime-stichezza con queste nuove strutture didati, di creare interfacce utenti com-piesse con poco sforzo.

    In conclusione un accenno all'ExtendSystem, lo strumento tramite il quale èpossibile interfacciare routine in C edAssembler ai propri programmi Clipper;ha mantenuto la potenza ed efficaciadella precedente versione con una im-portante novità: sono state aggiuntenuove funzioni che permettono di rias-segnare variabili di memoria passateper riferimento da un programma Clip-per ad una routine C o Assembler.

    Il debuggerIl debugger del Clipper 5 viene trat-

    tato in questa specifica sezione, vuoiper l'importanza che ormai ha assuntouno strumento di questo tipo nell'atti-vità quotidiana di un programmatore,vuoi perché si tratta di un elemento cheha subito sostanziali modifiche rispettoalle versioni precedenti, adeguandosi al-lo standard di prestazioni tipiche di pro-dotti per lo sviluppo di applicativi.

    Con questo debugger non si raggiun-gono certo le potenzialità di un Code-view o di un Turbo Debugger ma rispet-

    123

  • PROVACLiPPER 5.0

    to a quel semplice strumento offertocon la precedente versione il passo inavanti è certamente notevole; ora il de-bugger è un programma separato, ingrado di processare file .EXE prodotticon l'opzione del compilatore, at-traverso il quale è possibile seguire pas-so passo la sequenza di istruzioni ese-guite, visualizzare in un'apposita fine-stra il contenuto di variabili (o anchecrearne di nuove durante l'esecuzione),eseguire procedure o funzioni definitedall'utente (purché compilate e linkatenell'applicativo corrente) ed esaminarela struttura di un data base.

    Una volta lanciato il debugger (con ilcomando CLD seguito dal nome del fi-le eseguibile) lo schermo appare divisoin due finestre: la prima è la Code Win-dow e viene utilizzata per la visualizza-zione del codice mentre la seconda èla Command Window tramite la qualeè possibile impartire i comandi al de-bugger (è possibile spostare la linea didemarcazione tra queste due finestrein modo da rendere visibile una partemaggiore di una delle due); nella partealta dello schermo una serie di menu atendina permettono di impartire i prin-cipali comandi senza doverli digitaresulla linea di comando.

    Tramite i tasti funzione (la cui dispo-sizione dei comandi ricorda quella delCodeview) è possibile eseguire il pro-gramma una istruzione alla volta oppu-re in modalità (esecuzionedelle istruzioni in maniera consecutivacon un certo intervallo di tempo tra unae l'altra), setta re dei Breakpoint su li-nee di programma in cui il debugger de-ve fermarsi per permettere un'esecu-zione passo passo, settare dei Watch-point o dei Tracepoint su cui il debug-ger deve fermarsi al variare del valoredi una variabile o di un'espressione; èinoltre possibile definire dei Passpoint,owero dei contatori indicanti il numerodi volte che una data linea (istruzione)viene eseguita, cosa che risulta moltoutile per il controllo di loop e cicli nidi-ficati.

    Una grossa comodità offerta all'uten-te è quella di poter definire degli in cui memorizzare la situa-zione attuale dei settaggi relativi aBreakpoint, Watchpoint e Tracepoint diun programma in fase di debug, in mo-do da' poter ripristinare la situazionecorrente, nella successiva sessione dilavoro con lo stesso programma, trami-te il comando INPUT.

    Purtroppo la stessa comodità opera-tiva non è stata prevista per la visualiz-zazione delle finestre che sono non so-vrapponibili; si può avere qualche pro-blema infatti quando, oltre alle due fi-nestre viste in precedenza, si decide di

    124

    aprire anche la Watch Window (per iWatchpoint ed i Tracepoint) e la Call-stack Window che visualizza nella partedestra dello schermo la sequenza dellefunzioni chiamate fino a quel momen-to: in questa situazione operativa nonrimane che espandere a tutto schermole singole finestre (tramite il tasto F2)per una consultazione migliore ma pur-troppo limitata ad un solo elemento traquelli componenti la sessione di debug.

    Direttamente in modalità full-screenviene invece visualizzata la Status Win-dow, dedicata alla consultazione dellearee di lavoro attualmente attive unita-mente ai file DBF in esse aperti.

    Tutto questo stando a quanto ripor-tato dalla manualistica; se invece ci sidiverte a «trafficare» un po' con i file siscopre che:- sulla linea di comando si possonodefinire degli switch per lavorare a 43(EGA) o 50 (VGA) linee e richiamare inautomatico un file contenente lo scriptdesiderato;- nella Status Window viene visualiz-zata la sola struttura del file di databa-se attualmente selezionato e non c'èmodo di ottenere la lista dei settaggicome previsto dai manuali;- nel passare da una all'altra delleWindow richiama bili, la Command Win-dow viene «sporcata» dal contenutodell'ultima finestra aperta e ritorna alsuo stato originario solo dopo aver pre-muto varie volte il tasto Enter in mododa far «affiorare» linee pulite (un pro-blema analogo si presenta anche per lefinestre della Status Window).

    Le divergenze riscontrate non sonosegnalate neanche nel file Readme do-ve invece si parla della possibilità di vi-sualizzare il contenuto di un array nellaWatch Window semplicemente eviden-ziandone il nome e premendo il tastoEnter.

    Comunque il debugger si è mostratoall'altezza del pacchetto, fornendo final-mente uno strumento efficiente al pro-grammatore che, se vuole, può ancheintegrarlo nel programma eseguibilecollegando con il linker la libreriaCLD.L1B e richiamandolo tramite la fun-zione ALTDO; come ulteriore possibilitàsi può lanciare il programma EXE (pur-ché compilato con l'opzione

  • PROPONE

    ......':0"°:: .' .' .' .: •• :. ":." •• °0.° •• ',.: : ::. :0"°:,'·

    ARDLa vasta gamma di hard disk da 3" 1/2prodotta dalla CONNER è distribuita in tuttaItalia dalla AXXON.Molto affidabili e veloci, questi hard diskprogettati per workstation, PC e laptoppresentano caratteristiche di notevole rilievo:• capacità: 20 - 40 - 80 - 100 e 200 Mb• tempo-medio di accesso: da 24 a 16 millisecondi• consumi bassissimi: 4,2 a 2,9 watt• sopportano urti fino a 50 G.Sono disponibili modelli con interfaccia PC/AToppure SCSI embedded.

    CHI CERCA C::NNER TROVA AXXONBERGAMO e BRESCIA· AXXON spaTel. (02) 95.30.06.31BOVISO MASCIAGO (MI)· ARTAX srlTel. (0362) 55.87.61TORINO - MI.RA.MA sasTel. (011) 27.35.561PADOVA· ELCOM srlTel. (049) 80.70.319

    PIEVE MODOLENA (RE)· DE PIETRITel. (0522) 79.26.94FIRENZE - T.D.A. sasTel. (02) 95.300.631AMELIA (TR) - MARIO GARDANOTel. (0744) 98.37.91MOGLIANO (MC) - SYSTEM HOUSE EllATel. (0733) 29.27.76

    ROMA· ADDEL srlTel. (06) 60.95.881NAPOLI - EXPO TRADING CO sasTel. (081) 68.20.39BARI - DBS Sist. Inf. AziendaliTel. (080) 22.84.30CATANIA - ADVANTAGE srlTel. (095) 22.11.80