Borland C++ 2.0: kod źródłowy odtworzony z BCC.EXE bajt w bajt
Borland nigdy nie opublikował kodu Borland C++ 2.0. Projekt borland-reborn odtworzył go z binarki z 1991 roku i po kompilacji dostaje identyczny BCC.EXE.

Borland nigdy nie udostępnił kodu źródłowego Borland C++ 2.0. Teraz ktoś go odtworzył z samego pliku BCC.EXE z 1991 roku. Po zbudowaniu oryginalnymi narzędziami Borlanda wychodzi plik zgodny z fabrycznym co do bajtu, z tą samą sumą SHA-256.
Projekt nazywa się borland-reborn. Zawiera 298 plików źródłowych w 15 katalogach: 265 w C (Borland C++ 2.0 i Turbo C 2.01) oraz 33 moduły pisane ręcznie w TASM. Podział na kod skompilowany i ręczny asembler z oryginału został zachowany. Na razie gotowe są BCC.EXE i osobny preprocesor CPP.EXE. Kolejne wersje Borlanda i Turbo mają dojść później.
Jak odtworzono kod źródłowy BCC.EXE
BCC.EXE zbudowano w Borland C++ 2.0, z TASM 2.51 dla części ręcznych i TLINK 4.0 z menedżerem overlayów VROOMM. Funkcja zgadza się z oryginałem tylko wtedy, gdy trafi się w kompilator, jego wersję i wszystkie przełączniki. Autor zaczął więc od ich dobrania i ustalił, że 29 modułów biblioteki zbudowano jeszcze w Turbo C 2.01. Potem dopasowywał funkcje jedna po jednej, aż zgodził się każdy bajt.
Dopiero wtedy kod uczyniono czytelnym dla ludzi: około 3100 nazw funkcji, zmiennych globalnych i etykiet, 300 pól rekordów i około 10 000 linii komentarzy. Każda zmiana, także zmiana nazwy, jest sprawdzana tym samym testem bajt w bajt.
Jakie błędy znaleziono w Borland C++
Przy okazji wyszły błędy samego kompilatora. Funkcja strrchr czyta bajt przed pustym ciągiem znaków. Miejsce zwolnione w pliku prekompilowanych nagłówków nigdy nie jest używane ponownie. Parser napisano ręcznie, metodą zejść rekurencyjnych, z parserem wyrażeń opartym na priorytetach operatorów, bez yacc. A łączenie ogonów w generatorze kodu wpłynęło na to, jak trzeba było pisać źródła.
Oryginalnych programów Borlanda w repozytorium nie ma, do przebudowy trzeba samemu pobrać ich dystrybucje. Jest też wersja do modyfikacji kompilatora: przetestowano ją na 1836 kompilacjach, a testy wykonują 83% jego kodu. Własne skrypty projektu mają licencję MIT, a odtworzone źródła pochodzą z programów chronionych prawem autorskim i udostępniono je do nauki i zachowania, bez rościenia sobie praw.
Aplikacje warte uwagi
Wybierz właściwe pola, dodaj je i trafiaj w cel. Łatwa do nauczenia, trudna do opanowania. Za darmo, dla każdego wieku.
Rozmawiaj z partnerem AI; każde zdanie wraca poprawione i wyjaśnione w Twoim języku. 9 języków, od A1 do C2.
Otwieraj komunikaty EDIFACT i X12, każdy segment objaśniony, konwersja do JSON/XML, eksport PDF i Excel. Działa lokalnie, bez wysyłania.
Wybierz dla kogo, okazję i osobowość. Wyszukiwarka czyta opisy produktów lokalnych sklepów i układa to, co pasuje. Za darmo, bez rejestracji.
Więcej z tego dnia
Zobacz wszystkie →
Half-Life 2: Episode Three: moder uruchomił wyciekłą broń

Seagate FireCuda Forge: dysk 20 TB z pustym slotem na SSD

Danfoss AK-SM 800A: sterowniki chłodnicze w sklepach wciąż podatne

Home Assistant z AI: test dał modelowi LLM prawa admina w domu
Więcej w kategorii: Oprogramowanie
Zobacz wszystkie →
Tryb incognito w Chrome: co ukrywa, a czego nie zablokuje

Meta testuje Takes: aplikację prognoz, w której płaci się „credem”
Awaria Microsoftu: Outlook, Teams i Office nie działały 11 godzin
