Microsoft otworzył źródła interpretera GW-BASIC

Microsoft otworzył źródła interpretera GW-BASIC

Autor: Krzysztof Sulikowski

Opublikowano: 5/22/2020, 7:06 PM

Liczba odsłon: 2632

Po otwarciu źródeł MS-DOS 1.25 i 2.0 na GitHub w zeszłym roku Microsoft przechodzi na Open Source z kolejnym historycznym produktem. Chodzi tu o GW-BASIC, wydany przez Microsoft w 1983 roku na komputery IBM PC XT. Jest to interpreter BASICa pochodzący od IBM Advanced BASIC/BASICA (port Microsoft BASIC).

Opublikowany kod pochodzi z wydania GW-BASIC z 10 lutego 1983 roku. To trochę dawno, dlatego trzeba przytoczyć nieco historii. W roku wydania Bjarne Stroustrup był w trakcie tworzenia pierwszej wersji C++, ARPANET zestandaryzował TCP/IP, Borland zapowiedział Turbo Pascal (stworzony przez Andersa Hejlsberga, który później dołączył do Microsoft i stworzył J++, C# i TypeScript). 1983 był też rokiem, w którym AT&T wypuścił UNIX System V R1, ukazał się BSD 4.2, wprowadzając po raz pierwszy pseudoterminal (protoplastę ConPTY w Windows z 2018 roku). Microsoft wypuścił natomiast MS-DOS 2.0 i GW-BASIC.

Różne interpretacje BASIC Microsoftu mają swoje źródła w pierwszym produkcie Billa Gatesa i Paula Allena — interpreterze BASIC dla Altair 8800. Pod koniec lat 70. i w latach 80. BASIC Microsoftu był portowany na wiele platform i dla wielu popularnych wówczas procesorów, w tym 8088, 6502, 6809, Z80 i innych. Co ciekawe, jak większość oprogramowania z lat 70-80 interpreter GW-BASIC oraz MS-DOS zostały napisane w czystym asemblerze.

Ale jak to? Nie ma kodu w C? Otóż nie. Deweloperzy w tamtym okresie sięgali czasem po języki wyższego poziomu, takie jak FORTRAN, LISP, COBOL, RPG, CPL/BCPL, C itd., niemniej jednak kompilatory tych języków były strasznie drogie i rzadko generowały wydajny kod. Były również poza możliwościami ówczesnych komputerów osobistych. Podczas pisania oprogramowania na wczesne pecety liczył się każdy pojedynczy bajt i każda instrukcja. Programiści zwykle kodowali całość w języku asemblera, aby program zmieścił się w dostępnej pamięci i aby zyskał precyzyjny dostęp do zasobów i wewnętrznych procesów komputera.

Microsoft GW-BASIC Interpreter to już prawdziwy informatyczny zabytek, którego kod na pewno chętnie przejrzą zaawansowani programiści. Źródła zostały udostępnione — jak zwykle — na platformie GitHub.