Web Analytics
Privacy Policy Cookie Policy Terms and Conditions Clipper (linguaggio) - Wikipedia

Clipper (linguaggio)

Da Wikipedia, l'enciclopedia libera.

Nota disambigua - Se stai cercando il veliero da trasporto, vedi Clipper (nave).

Clipper è un versatile linguaggio di programmazione di alto livello. È stato ed è usato prevalentemente per creare programmi gestionali integrati basati su database relazionali in ambiente DOS, ma la sua potenza e flessibilità (unita alla caratteristica architettura aperta) sono quelle tipiche dei linguaggi general-purpose.

Clipper è nato nella prima metà degli anni '80 dello scorso secolo come semplice compilatore per il popolare linguaggio dBASE III. La compilazione del codice dBASE (che nell'ambiente originale DBIII era semplicemente codice intepretato) generava in parte codice macchina nativo ed in parte, per alcune sezioni di codice gestite dinamicamente, P-Code (pseudo codice) destinato ad essere eseguito a run-time da una Macchina Virtuale.

Clipper venne creato da una azienda di nome Nantucket, successivamente ceduta a Computer Associates.

Come prodotto maturo rimane un fondamentale strumento DOS per molti anni, aggiungendo un potente preprocessore, elementi sintattici del C (linguaggio) e del linguaggio Pascal, elementi di OOP (principalmente classi predefinite direttamente istanziabili), ed il caratteristico tipo di dati code-block.

Numerose sono le innovazioni introdotte per la prima volta proprio da Clipper sulle architetture target (PC DOS) verso la fine degli anni '80, in parte con la versione denominata "Summer '87" e soprattutto con la versione 5, che segna la svolta definitiva nella maturità del linguaggio e rimane in auge come major version per tutti gli anni '90.

L'interfaccia verso i database e gli indici si arricchisce con potenti drivers sostituibili modulari (RDD, Replaceable Database Drivers), che consentono:

- l'impiego di indici e strutture di database nettamente più efficienti rispetto ai formati nativi DBF;

- l'apertura verso altre piattaforme e tipologie di database;

- la possibilità di implementare meccanismi avanzati e robusti di cifratura e decodifica "on-the-fly" degli header e/o dei dati.

Fra gli RDD vale la pena di ricordare Comix (poi integrato in Clipper 5.3)

Queste caratteristiche, unitamente al sistema di interfaccia Extend che consente di scrivere con semplicità librerie in C ed Assembly supportando lo scambio bidirezionale di parametri e l'invocazione da low level di macroroutine Clipper dinamicamente assegnate tramite i codeblocks, ne fanno un sistema unico, flessibile e straordinariamente potente per la stesura di applicazioni altamente verticalizzate ed anche (se ben congegnate) estremamente performanti, che includono il controllo dell'hardware al più basso livello e giungono fino alla creazione semplificata delle interfacce utente più complesse ed elaborate (con ampissimo supporto anche per modalità grafiche, semigrafiche e standard SAA/CUA).

Unico "svantaggio" di Clipper in ambiente DOS, a fronte di una così ampia potenza, integrabilità e flessibilità, è la ridotta efficienza in termini di spazio su disco ed in memoria degli eseguibili prodotti, che tendono ad assumere dimensioni notevoli (per l'epoca, ma pur sempre ridicole in confronto agli attuali mastodonti): inconveniente peraltro facilmente ovviabile grazie al supporto nativo degli overlay, delle librerie dinamiche condivise PLL (introdotte nei primi anni '90, anticipando l'avvento delle DLL in ambiente windows) e di numerosi DOS Extenders.

Tra i linker disponibili, sono certamente da ricordare RTLink (presente dalla versione 5.01 di Clipper in versione ridotta), Exospace (integrato poi nella versione 5.3 di Clipper), Blinker e WarpLink (denominato poi CauseWay con l'integrazione di un Dos Extender 386).

Durante gli anni '90 si sviluppa attorno al linguaggio Clipper un fiorente e remunerativo mercato per librerie ed estensioni di terze parti, generatori di codice, tools di analisi statica e documentazione dei sorgenti, compressori e protettori di eseguibili, tools per reverse engineering, debugger (MrDebugger) e profiler avanzati, utility per manutenzione, backup, controllo di integrità e riparazione dei file di database, ed anche interi ambienti di sviluppo RAD con caratteristiche innovative di grande interesse (dBsee ed altri), poi divenute patrimonio comune nei tools RAD di seconda e terza generazione in ambiente windows.

Da notare anche alcune estensioni in grado di creare programmi Windows, partendo da sorgenti clipper DOS: FiveWin, Clip4Win e DolceVita.

A tutt'oggi, nel 2006, il linguaggio Clipper è attivamente supportato ed esteso da molte organizzazioni, sia gratuite (GPL based) come Clip, Harbour, xHarbour che commerciali come Xbase++ e FlagShip.

Molte delle attuali (2006) implementazioni sono altamente portabili (DOS, Windows, Linux (32,64), Unix (32,64), OS/X) e supportano diverse varianti ed estensioni sintattiche del linguaggio.

[modifica] Collegamenti esterni

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu