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

Responsive image


BCPL

BCPL
Pojawienie się

1967

Paradygmat

wieloparadygmatowy (strukturalny, imperatywny, proceduralny)

Typowanie

brak

Pochodne

C

Twórca

Martin Richards

BCPL (Basic Combined Programming Language) – język programowania zaprojektowany przez Martina Richardsa(inne języki) na Uniwersytecie w Cambridge w 1967 roku[1] jako wynik problemów z jego poprzednikiem – językiem CPL – w latach sześćdziesiątych. Pierwszy kompilator BCPL Richards napisał wiosną 1967 w czasie pobytu w MIT. Język został opisany w artykule zaprezentowanym na Spring Joint Computer Conference w 1969 roku. Na podstawie BCPL Dennis Ritchie później zaprojektował język programowania C.

BCPL powstał jako narzędzie do pisania kompilatorów, choć jednocześnie, w celu umożliwienia jego stosowania w programowaniu systemowym, zadecydowano, by jego składnia była prostsza niż miało to miejsce w przypadku CPL[2].

BCPL posiadał jeden typ danychsłowo maszynowe, którego długość w bitach zależała od docelowej architektury i była niezmienna w jej obrębie. Najczęściej zawierała się w zakresie od 16 do 36 bitów. Wszystkie wyrażenia i zmienne w języku przyjmowały wartość tego typu, która jednak mogła być odmiennie interpretowana w zależności od kontekstu[3].

Kompilator BCPL, również napisany w tym języku, składa się z trzech komponentów, które po kolei uczestniczą w kompilacji kodu. Pierwsze dwa (analizator składniowy i moduł tłumaczący) są prawie całkowicie niezależne od docelowej architektury. Ich wynikiem jest kod pośredni (nazywany OCODE). Za jego przetłumaczenie na kod maszynowy odpowiada ostatni komponent kompilatora – generator kodu, który musi być przystosowany do architektury docelowego komputera[2].

Stosowany przez kompilator kod pośredni był niezależny od docelowej architektury komputera. Można go porównać do języka asemblera dla pewnej abstrakcyjnej maszyny stosowej, na której opiera się definicja języka[4].


Previous Page Next Page