Kompiluję szczegółową historię języka Pascal i brakuje kilku szczegółów.
Dziś jest tak wiele funkcji, że uważamy za pewnik. Jakie cechy znacząco przyczyniły się do ewolucji Pascala i dlaczego były znaczące?
Szukam funkcji języka, a nie funkcji platformy lub frameworka. Tak jak przeciążenie operatora lub parametry domyślne, ale nie obsługa Linuksa lub nowy widżet Rich Text.
Wiem, że istnieje kilka różnych smaków Pascal (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal itp.) I wprowadzili te same funkcje w różnych momentach i równolegle. To dobrze. Patrzę na język Pascal jako całość i kiedy nastąpiły znaczące kamienie milowe (daty, wersje itp.)
Apps
nowy smak klienta-serwera).Odpowiedzi:
Z historycznego punktu widzenia języka prawdopodobnie największym wkładem Pascala było bezpieczeństwo typu silnego. Ta bitwa jest już prawie zakończona - strona Pascala wygrała - a przemysłowym punktem zwrotnym była Java. Ale przez bardzo długi czas C było faworyzowane przed Pascalem przez ludzi, którzy uważali się za dorastających programistów w dużej mierze z tego powodu: ludzie chcieli wolności manipulowania swoimi wskaźnikami, jakby byli liczbami całkowitymi. Praktyczne implementacje Pascala miały jednak luki, takie jak związki, które nie sprawdzały dynamicznie pola dyskryminacyjnego, a nawet miały pełne rzutowanie typów wskaźników do tego stopnia, że były prawie równoważne C (Turbo Pascal był jednym z nich).
To i uproszczenie skomplikowanej specyfikacji ALGOL 68 [1] może być punktem wyjścia.
[1] Spróbuj kiedyś przeczytać raport ALGOL 68 - to zdecydowanie produkt z lat 60.! Jedna strona internetowa wspomina niektóre z dziwnych żargonów: „token autobusowy”, „niewidzialne drzewa produkcyjne”, „pierwotne otoczenie”, „kazirodztwo”, „pojęcia”, „protonotacje”, „metanotacje”, „hipernotacje”, „ paranotacje ”itp.
źródło
Powiedziałbym, że dwie najważniejsze siły napędowe w historii Pascal to:
źródło
Naprawdę musisz wrócić do początków - znaleźć historię Niklausa Wirtha. Pascal rozpoczął swoje życie jako język nauczania. „Algorytmy + struktury danych = programy” to dobry punkt wyjścia.
W tym czasie Pascal był znacznie prostszy niż Algol 68 i PL / 1. Wymusiło to strukturę i deklarację, a także silne bezpieczeństwo typu, w przeciwieństwie do Fortran4 (Fortran 77 trochę poprawił, ale nadal można grać w bardzo szybki i luźny tryb). W porównaniu do COBOL był krótki, prosty i łatwiejszy do pisania programów. (Witaj świecie w około 6 liniach zamiast 600).
Kiedy powstał, w Pascalu istniały takie tablice znaków, jak w przypadku obsługi ciągów znaków. Przez lata sytuacja uległa poprawie.
Jeśli naprawdę chcesz zagłębić się w historię Pascala, musisz wziąć pod uwagę kilka punktów:
W latach osiemdziesiątych między Pascalem a C. odbył się wielki festiwal ślimaków. W obu obozach odbywał się ogromny rozwój i działalność.
W rezultacie dziwne i cudowne rzeczy, takie jak Bliss-32, Algol i PL / 1 praktycznie zniknęły - ale pomysły z nich trafiły do Pascala.
EDYCJA: tablice znaków mogą być spakowane, co nadaje pewne specjalne właściwości, ale jeśli chcesz czegoś, co obecnie znamy jako obsługę ciągów, musisz sam go wyhodować.
źródło
packed array[1..n] of char;
, np. W Odczyt (ln) i Zapis (ln)Rozszerzenia zorientowane obiektowo! Object Pascal był największym (nieoficjalnym) skokiem standardów po wydaniu Delphi (1) w połowie lat 90. Trudno wybrać tylko jeden, ale cały rdzeń modelu obiektowego jako całości pomógł wprowadzić język do nowoczesnego statusu. Niestety do dnia dzisiejszego nie został przekształcony w oficjalny jednolity standard, którego wszystkie kompilatory byłyby zgodne w symetrii kodowania.
Na szczęście programiści Free Pascal dość dostosowali funkcje dodane do Delphi zarówno przez Borlanda, jak i Embarcadero. RemObjects nie tyle, ale przynajmniej hey mają powiązania z Embarcadero pod Delphi Prism, więc wszelkie odchylenia od standardu (aby uczynić język bardziej zgodnym z .NET) byłyby wysoce udokumentowane.
źródło
virtual
słowa kluczowego, aby zastąpić je podklasami.Tylko jedną lub dwie rzeczy, które pamiętam z używania Pascala dawno temu w MS-DOS:
Turbo Pascal mniej więcej wprowadził rodzaj IDE w latach 80. (a wydajność kompilacji znacznie wzrosła w porównaniu z UCSD Pascal
Jakoś w połowie lat 90. Borland zmienił nazwę z Turbo na Borland Pascal . Jako pierwszy krok wprowadzono Jednostki, które pozwoliły na podzielenie dużych projektów na osobne jednostki kompilacji.
Później dodali również programowanie obiektowe.
źródło
Jednym z kluczowych kroków ewolucyjnych w Pascalu było właściwe pojęcie strun. ISO 7185 („Standardowy Pascal”) nie miał ich, co jest trochę krępujące. Jednak wszyscy prawdziwi programiści ich potrzebowali, a zapewniły to realne implementacje Pascala (takie jak Borland / Turbo Pascal).
źródło
Patrząc wstecz na innowacje językowe Pascal firmy Delphi - dodałbym model Właściwość, Metoda, Zdarzenie (PME) i sekcję „Opublikowane” dla klas. Dzięki temu natywny kod jest łatwy w użyciu i możliwe jest budowanie komponentów. Komponenty spełniły obietnicę Brada Coxa dotyczącą oprogramowania układów scalonych.
źródło
Walka między wieloma smakami Pascala w latach 80. i na początku 90.
Miałeś Apple Pascal , Microsoft Pascal i QuickPascal oraz Turbo Pascal .
Wszystkie wprowadzono Object Pascal w taki czy inny sposób (QuickPascal 1.0 i Turbo Pascal 5.5 w tym samym przedziale czasowym). Apple, ponieważ wymagali tego od swojej platformy, Microsoft i Borland, ponieważ OO stawało się „fajne” (wtedy QuickPascal zmarł wkrótce potem, a Turbo Pascal 6.0 dodał rozsądną platformę OO o nazwie Turbo Vision ).
Rudy Velthuis jest dość kompletny w swoim wpisie na forum .
Możesz pobrać obraz ISO z DOS 6.22 i kilkoma kompilatorami DOS Pascal z tamtej epoki .
źródło
Myślę, że wprowadzenie interfejsów (w Delphi 3 IIRC) było bardzo ważne, aby uczynić z niego nowoczesny język obiektowy.
źródło
Dodam anonimowe metody i generyczne do miksu.
źródło
Nowe funkcje językowe między Delphi 7 i Delphi XE opisano na stronie 52 w białej księdze Embarcadero:
http://www.embarcadero.com/images/dm/technical-papers/reasons-to-migrate-to-delphi-xe -białe-papier.pdf
źródło
Dla mnie dwie największe rzeczy (po niektórych innych językach, takich jak C ...) to brak wrażliwości na wielkość liter i szybkość kompilatora.
A potem faktem jest, że łatwiej jest pisać za pomocą fińskiej klawiatury, ponieważ nie potrzebuję ciągle {} lub innych trudnych do uzyskania klawiszy ...
Jestem na pokładzie od Delphi2, ale użyłem D1 w pracy przez kilka lat ...
źródło
Zacznij od „Programowania strukturalnego” Dahla, Dijkstry i Hoare. Sekcja Dijkstry ma fundamentalne znaczenie, nawet dzisiaj. Sekcja Tony'ego Hoare'a na temat strukturyzowania danych położyła duży fundament pod PASCAL. (Część Dahla mówiła o tym, co ostatecznie stało się programowaniem obiektowym. Opisał, co stało się klasami w Simuli 67.)
Spójrz na ALGOL-W, implementację Wirtha wariantu ALGOL-60.
Musisz również wiedzieć o PL / I i edytorze linków (łączniku) IBM 360 w tym czasie. Był to cud ogólności, z drobnym problemem, że płynął wolniej niż melasa w styczniu w Juneau na Alasce. PASCAL został specjalnie zaprojektowany do kompilacji i łączenia w jednym przebiegu, aby zwiększyć szybkość. (Pomogło to, że język zaczął działać na młodszym superkomputerze CDC 6400 z dużą ilością pamięci, dzięki czemu kompilator jednoprzebiegowy jest praktyczny.)
Istniały dwie główne wersje PASCAL z ETH Zurich. Językiem, który wszyscy znają jako PASCAL, był tak naprawdę PASCAL2, druga wersja.
źródło