5

Czy ktoś wie o działającym kompilatorze BCPL, napisanym dla bieżącego systemu operacyjnego (mam system Windows 7 i Ubuntu łatwo dostępny) z architekturą x64? Pierwszy raz usłyszałem o BCPL po niedawnej śmierci Dennisa Ritchiego i dziwnie fascynuje mnie to, co czytałem o tym języku.Kompilator/interpreter BCPL dla aktualnego systemu operacyjnego i architektury?

Wcześniej grałem tylko z nowoczesnymi, wysokopoziomowymi językami, ale myślę, że byłoby miło zanurzyć się w tej historii komputerów. Jednak nie wiem nic o kompilatorach, więc nie mam zamiaru napisać go samemu. Jakieś sugestie?

Odpowiedz

7

Adres BCPL Wikipedia article zawiera adres URL dla Martin Richards's BCPL distribution, który zawiera interpreter działający między innymi na systemach Linux i Windows.

Z README:

Zapewnia maszynowy niezależny interpretacyjny wersję BCPL. Interpreter został zaimplementowany w języku C, ale w przypadku niektórych architektur również wersja ma wersję zaimplementowaną w języku asemblera, co zapewnia lepszą wydajność niż w przypadku wersji.

Ta dystrybucja zawiera wersje systemu Linux, DEC Alpha maszyny, Mips R2000/3000 i Mac Zasilacze PC, Sun4s, Sun/SPARC i 386/486/Maszyny Pentium pod MS-DOS, Windows 95/98/NT/2000/XP, Windows CE2.0 (dla modelu HP 620LX), Mac OS X lub OS/2. Niektóre implementacje nie zostały przetestowane w ostatnim czasie i są raczej poza datą . Najprostsza instalacja dotyczy komputerów z systemem Linux. Instalacja na innych maszyn jest opisana później. Ta dystrybucja obejmuje plik wykonywalny : cintsys.exe, który powinien działać w większości systemów Windows na komputerach z procesorem Pentium.

prof Richards pracuje również na 64 bit version of BCPL, choć nie wygląda tak dobrze sprawdzone jak jego dystrybucji BCPL.

+0

Ah, rzeczywiście. Nie zauważyłem tego. Ta strona faktycznie rozwiązuje kolejną zagadkę, ponieważ przeczytałem, że BCPL jest interpretowana, co było sprzeczne z innymi. Prawdopodobnie tłumacz został napisany później, ponieważ jest w C. Dzięki! – andronikus

3

BCPL kompiluje się do języka pośredniego o nazwie OCODE, a następnie różne kody drugiego przebiegu generują z OCODE do postaci kodu wykonywalnego. Martin Richards pierwotnie wygenerował INTCODE, a jego książka na temat kompilatora BCPL pokazuje, jak napisać interpreter dla INTCODE. Napisałem tłumaczy INTCODE na wielu komputerach, w tym w FORTRAN w latach 70. i jeszcze w Javie. Pliki do pobrania na jego stronie internetowej są przeznaczone dla znacznie ulepszonego i rozszerzonego BCPL (zwłaszcza bibliotek) i teraz kompilują się do CINTCODE, i istnieje wiele interpreterów napisanych głównie w C dla wielu architektur.

Powiązane problemy