BCPL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
|  rimuovo tmp | m Fix sezione == Cenni [...] == come da richiesta | ||
| (8 versioni intermedie di 6 utenti non mostrate) | |||
| Riga 19: |sito_web =  }} Il '''BCPL''' ('''''B'''asic '''C'''ombined '''P'''rogramming '''L'''anguage'') è un [[linguaggio di programmazione]] sviluppato da [[Martin Richards]] dell'[[Università di Cambridge]] nel [[1966 == Storia == Le caratteristiche di pulizia, potenza e portabilità rendono semplice la realizzazione di compilatori compatti (si vocifera che alcuni compilatori potessero funzionare anche con soli 16 [[Kilobyte|kB]] di memoria). Alcuni [[sistema operativo|sistemi operativi]] vennero scritti, completamente o in parte, utilizzando BCPL (ad esempio il [[TripOS]] o l'[[AmigaOS]]). La principale caratteristica che rendeva il compilatore particolarmente [[portabilità|portabile]] risiedeva nel fatto che esso era logicamente diviso in due parti: la prima parte (''[[front end]]'') si occupava di analizzare il codice sorgente e di generare un codice intermedio (''O-code'') per una [[macchina virtuale]], la seconda (''[[back end]]'') traduceva l'''O-code'' nel codice per la [[CPU]] bersaglio, su cui il programma doveva girare. In questo modo, quando era necessario scrivere un compilatore per una nuova CPU, era sufficiente riscrivere il ''backend''. Questa tecnica divenne in seguito molto comune (ad esempio in [[Pascal (linguaggio)|Pascal]] o [[Linguaggio di programmazione Java|Java]]), ma il BCPL fu il primo linguaggio a specificare una macchina virtuale a questo scopo.▼ Richards sviluppò il linguaggio  in seguito alle difficoltà che aveva incontrato nell'utilizzo del suo predecessore, il [[Combined Programming Language]]. Il primo [[compilatore]] del nuovo linguaggio di programmazione venne implementato mentre lo studioso si trovava al [[Massachusetts Institute of Technology|MIT]], nella primavera del [[1967]]. Il linguaggio venne presentato per la prima volta alla ''Spring Joint Computer Conference'' nel al 1969. L'architettura del BCPL influenzò pesantemente il linguaggio [[B (linguaggio)|B]], da cui [[Dennis Ritchie]] in seguito sviluppò il [[C (linguaggio)|C]].  Nel [[1979]] esistevano implementazioni di BCPL per almeno 25 diverse architetture,  Il linguaggio si caratterizza per avere un unico [[tipo di dato|tipo di dati]], il tipo [[word]] (un numero fisso di [[byte]], di solito scelto per allinearsi con la parola della macchina). L'interpretazione del dato veniva fatta in base al tipo di operatori utilizzati: ad esempio, utilizzando il segno di addizione ''+'', i dati venivano sommati come se si trattasse di [[numeri interi]], mentre l'operatore ''!'' di [[dereferenziazione]] trattava i dati come [[tipo di dato#Puntatori|puntatori]]. Allo scopo di rendere la cosa possibile, l'implementazione del BCPL non prevedeva il [[type checking]].▼ ==Caratteristiche == ▲Nel [[1979]] esistevano implementazioni di BCPL per almeno 25 diverse architetture, oggi il BCPL è stato interamente soppiantato dal C. ▲Le caratteristiche di pulizia, potenza e portabilità rendono semplice la realizzazione di compilatori compatti ▲Il linguaggio si caratterizza per avere un unico [[tipo di dato|tipo di dati]], il tipo [[word]] (un numero fisso di [[byte]], di solito scelto per allinearsi con la parola della macchina). L'interpretazione del dato veniva fatta in base al tipo di operatori utilizzati: ad esempio, utilizzando il segno di addizione ''+'', i dati venivano sommati come se si trattasse di [[numeri interi]], mentre l'operatore ''!'' di [[dereferenziazione]] trattava i dati come [[tipo di dato#Puntatori|puntatori]]. Allo scopo di rendere la cosa possibile, l'implementazione del BCPL non prevedeva il [[type checking]]. La filosofia del BCPL può essere riassunta in queste righe, liberamente tradotte dal libro "''BCPL, the language and its compiler''": :''La filosofia del BCPL non è quella del tiranno che pensa di sapere come vanno fatte le cose e detta ciò che è permesso e ciò che non lo è: piuttosto il BCPL è un servo che offre i suoi servigi al meglio delle sue possibilità, senza lamentarsi, anche quando si trova di fronte ad un'apparente contraddizione. Si assume che il programmatore sappia sempre quello che stia facendo: egli non è costretto a sottostare a rigidi vincoli.'' Riga 85 ⟶ 88: * ''BCPL, the language and its compiler'', Richards, M. and Whitby-Stevens, C. Cambridge University Press, 1980. (ISBN 0-521-28681-6) * ''BCPL - a tool for compiler writing and systems programming'', Richards, M. Proceedings of the Spring Joint Computer Conference, vol 34, pp 557–566, 1969. ==Voci correlate== * [[Martin Richards]] == Collegamenti esterni == * {{cita web|http://www.catb.org/~esr/jargon/html/B/BCPL.html|The Jargon file}} * {{cita web| * {{cita web| {{Controllo di autorità}} {{portale|informatica}} | |||