BCPL

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
BCPL
limbaj de programare
Autor Martin Richards
Data de origine 1966
Paradigme Procedural , imperativ , structurat
Tastare Tipeless (bazat pe cuvânt)
Influențată de CPL
A influențat B , C , Go [1]

BCPL (B asic C ombined P rogramming L anguage) este un limbaj de programare dezvoltat de Martin Richards de la Universitatea din Cambridge în 1966 .

fundal

Richards a dezvoltat limbajul în urma dificultăților pe care le întâmpinase în utilizarea predecesorului său, Limbajul de programare combinat . Primul compilator al noului limbaj de programare a fost implementat în timp ce savantul se afla la MIT în primăvara anului 1967 . Limbajul a fost prezentat pentru prima dată la Spring Joint Computer Conference din 1969. Arhitectura BCPL a influențat puternic limbajul B , din care Dennis Ritchie a dezvoltat ulterior C.

În 1979 au existat implementări ale BCPL pentru cel puțin 25 de arhitecturi diferite, fiind înlocuite progresiv de limbajul C.

Caracteristici

Caracteristicile de curățenie, putere și portabilitate facilitează construirea de compilatoare compacte. Unele sisteme de operare au fost scrise, integral sau parțial, folosind BCPL (de exemplu TripOS sau AmigaOS ). Principala caracteristică care a făcut ca compilatorul să fie deosebit de portabil a fost că a fost împărțit logic în două părți: prima parte ( front end ) se ocupa cu analiza codului sursă și generarea unui cod intermediar (cod O ) pentru o mașină virtuală , a doua ( back end ) a tradus codul O în codul procesorului țintă, pe care urma să ruleze programul. În acest fel, când a fost necesar să scrieți un compilator pentru un procesor nou, a fost suficient să rescrieți backend - ul . Această tehnică a devenit mai târziu foarte obișnuită (de exemplu în Pascal sau Java ), dar BCPL a fost primul limbaj care a specificat o mașină virtuală în acest scop.

Limbajul se caracterizează prin faptul că are un singur tip de date , tipul cuvântului (un număr fix de octeți , de obicei ales pentru a se alinia cu cuvântul mașină). Interpretarea datelor a fost făcută pe baza tipului de operatori utilizați: de exemplu, folosind semnul plus + , datele au fost adăugate ca și cum ar fi numere întregi , în timp ce ! dereferențierea datelor tratate ca indicatori . Pentru a face acest lucru posibil, implementarea BCPL nu a inclus verificarea tipului .

Filosofia BCPL poate fi rezumată în aceste rânduri, traduse liber din cartea „ BCPL, limba și compilatorul ei ”:

Filozofia BCPL nu este aceea a tiranului care crede că știe cum se fac lucrurile și dictează ce este permis și ce nu: mai degrabă BCPL este un servitor care își oferă serviciile în măsura posibilităților sale, fără să se plângă., chiar și atunci când se confruntă cu o contradicție aparentă. Se presupune că programatorul știe întotdeauna ce face: nu este obligat să se supună unor constrângeri rigide.

Exemple

Aceste exemple complete, compilabile, sunt preluate din distribuția BCPL a lui Martin Richards.

Tipărirea factorialului:

 OBȚINE „libhdr”

LET start () = VALOF
{FOR i = 1 TO 5 DO writef ("fact (% n) =% i4 * n", i, fact (i))
  REZULTATE 0
}

ȘI fapt (n) = n = 0 -> 1, n * fapt (n-1)

Opt soluții de puzzle pentru regine :

 OBȚINE „libhdr”
 
GLOBAL {număr: 200; toate: 201}
 
LET try (ld, row, rd) BE TEST rând = toate

                        THEN număr: = număr + 1

                        ELSE {LET poss = all & ~ (ld | rând | rd)
                               PÂNĂ pos = 0 DO
                               {LET p = poss & -poss
                                 poss: = poss - p
                                 încercați (ld + p "1, rând + p, rd + p" 1)
                               }
                             }

LET start () = VALOF
{toate: = 1
  
  PENTRU i = 1 Până la 12
  {număr: = 0
    încercați (0, 0, 0)
    writef ("Numărul de soluții pentru% i2-regine este% i5 * n", i, count)
    toate: = 2 * toate + 1
  }

  REZULTATE 0
}

Notă

  1. ^ Rob Pike, Hello Gophers , la discussions.golang.org , 24 aprilie 2014. Accesat pe 11 martie 2016 .

Bibliografie

  • BCPL, limba și compilatorul său , Richards, M. și Whitby-Stevens, C. Cambridge University Press, 1980. ( ISBN 0-521-28681-6 )
  • BCPL - un instrument pentru scrierea compilatorului și programarea sistemelor , Richards, M. Proceedings of the Spring Joint Computer Conference, vol 34, pp 557-566, 1969.

Elemente conexe

linkuri externe

Controlul autorității LCCN ( EN ) sh85012591
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT