Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.

Responsive image


Forth (linguaggio)

Forth
linguaggio di programmazione
AutoreChuck Moore
Data di origine1969
UtilizzoGeneral purpose
ParadigmiProgrammazione funzionale, stack-oriented, OOP, Paradigma ibrido, Programmazione procedurale, Programmazione riflessiva, Programmazione concatenativa
TipizzazioneStatica, debole
Estensioni comunifth, fs, 4th, fb, f e forth
Influenzato daLisp, APL, Assembly, Smalltalk, Burroughs large systems
Ha influenzatoFactor, PostScript, REBOL, Joy, Open Firmware, Open Boot, 4tH, HP FOCAL, FICL, 8th, ForthOS, toka, TclForth, Holon TForth, tclzForth
Implementazione di riferimento
Sito webforth-standard.org/

Il Forth è un linguaggio di programmazione sviluppato da Chuck Moore presso l'US National Radio Astronomy Observatory (NRAO) dall'inizio degli anni sessanta, ma uscì ufficialmente soltanto nel 1969[1], per essere poi formalizzato nel 1977, e standardizzato nel 1979, nel 1983 dal Forth Standards Team e poi dall'ANSI nel 1994 e aggiornato al Forth Standard 2012 (2012 e 2014) dal Forth 200x Standardization Commitee con richiesta di aggiornamento anche allo standard ANSI.

Il nome deriva dal fatto che Moore pensava fosse un linguaggio di quarta generazione (fourth generation language in inglese), ma il computer sul quale il sistema venne sviluppato ammetteva solo nomi di file lunghi al massimo cinque lettere. Nato per essere un linguaggio del futuro, verrà poi utilizzato in ambiti specifici come il software di controllo.

Il linguaggio Forth è un linguaggio funzionale, orientato ai problemi[2] e alle applicazioni[3], basato concettualmente sulle astrazioni e le definizioni concettuali, mentre sul piano dell'architettura a basso livello è basato sullo stack, sul dizionario, sull'implementazione di funzionalità vicine al livello macchina, sull'efficienza e l'ottimizzazione.

Esso è al contempo un linguaggio ad alto livello e un linguaggio di basso livello (in seguito nel testo è spiegato il perché di questo paradosso), un sistema operativo, un set di strumenti di sviluppo, una filosofia di approccio ai problemi e al software design[4]. È altresì anche un compilatore (di se stesso) e un interprete, e consente l'inversione comandata delle parti e delle istruzioni da una modalità di conversione all'altra, decidendo di fatto anche punto per punto quali parti compilare e quali interpretare, quali funzionalità gestire a tempo di compilazione e quali a tempo di esecuzione. Non ha stretta necessità di un vero debugger in quanto funge da debugger di se stesso e normalmente (salvo casi rari e particolarmente minificati) incorpora comandi di trapping, tracking, espansione del codice (anche quello già compilato), watchpoint e breakpoint.

Il paradigma di programmazione è funzionale, ed è possibile usarlo in modo funzionale o pseudoprocedurale oppure utilizzarlo in modalità OOP (nelle implementazioni moderne e ANSI). Non tutte le implementazioni sono tuttavia OOP compliant, ma va altresì ricordato che il Forth utilizza sempre un sistema di definizione astratto molto potente, che per analogia è più o meno assimilabile al concetto di classi e oggetti di cui è un'alternativa, e relative tecniche di switching dinamico fra strutture o blocchi funzionali allocati che ricorda in parte la dinamica del subclassing.

  1. ^ C. H. Ting, Systems Guide to figForth, Third Edition, 2013.
  2. ^ Charles H. Moore, Programming a problem-oriented-language, Giugno 1970.
  3. ^ E. D. Rather (National Radio Astronomy Observatory), C. H. Moore (National Radio Astronomy Observatory) e Kitt Peak national Observatory, FORTH - An Application-oriented Language - Programmer's Guide.
  4. ^ Leo Brodie, Starting FORTH, a cura di Chuck Moore, 1987.

Previous Page Next Page