GryRTV

„Cholernie głupia rzecz do zrobienia” – pochodzenie C.

Choć trudno w to uwierzyć, C nie urodził się po prostu w znoszonej miękkiej oprawie.
Powiększać / Choć trudno w to uwierzyć, C nie urodził się po prostu w znoszonej miękkiej oprawie.

W takiej czy innej formie C wpłynęło na kształt prawie każdego języka programowania opracowanego od lat 80. Niektóre języki, takie jak C ++, C # i obiektywne C, mają być bezpośrednimi następcami języka, podczas gdy inne języki po prostu przyjęły i dostosowały składnię C. Programista zaznajomiony z Javą, PHP, Ruby, Pythonem lub Perlem będzie miał niewielkie trudności ze zrozumieniem prostych programów w C iw tym sensie C może być traktowane jako lingua franca wśród programistów.

Ale C nie wyłonił się w pełni uformowany z powietrza jako monolit programowania. Historia C zaczyna się w Anglii, od kolegi Alana Turinga i programu, w którym grał w warcaby.

Boże miej w swojej opiece króla

Christopher Strachey był znany jako „osoba, która pisała doskonałe programy”, jak odnotowano w długim profilu w czasopiśmie „Annals of the History of Computing”. To była reputacja, którą zdobył w Manchester University Computing Center w 1951 roku. Strachey trafił tam, pracując na szkolnym komputerze Ferranti Mark I za pośrednictwem starego King’s College w Cambridge, łącznika, Alana Turinga.

Strachey urodził się w 1916 roku w dobrze skomunikowanej rodzinie brytyjskiej – jego wujek, Lytton Strachey, był członkiem założycielem Bloomsbury Group, a jego ojciec, Oliver Strachey, odegrał kluczową rolę w łamaniu szyfrów przez aliantów podczas obu wojen światowych.

Fakt, że Strachey został uznanym ekspertem w dziedzinie programowania i informatyki, byłby czymś w rodzaju zaskoczenia dla jego szkoły publicznej i instruktorów z Uniwersytetu Cambridge. Strachey zawsze wykazywał talent naukowy, ale rzadko się przykładał.

Jeśli miał nadzieję na karierę naukową, otrzymali poważny cios, ponieważ jego wyniki na egzaminach końcowych były niczym niezwykłym. Zamiast tego Strachey spędził II wojnę światową pracując dla brytyjskiej firmy elektronicznej, a potem został nauczycielem, ostatecznie wylądował w Harrow, jednej z najbardziej prestiżowych szkół publicznych w Londynie.

W 1951 roku Strachey miał swoją pierwszą szansę na pracę z komputerami, kiedy został przedstawiony Mike’owi Woodgerowi w brytyjskim National Physical Laboratory. Po spędzeniu dnia świątecznych wakacji na zapoznaniu się z pilotem ACE laboratorium, spędził wolny czas w Harrow, zastanawiając się, jak nauczyć komputer grać w warcaby. Jak ujął to Martin Campbell-Kelly, kolega Strachey w późniejszych latach, „każdy, kto ma większe doświadczenie lub mniej pewności siebie, zadowalałby się tabelą kwadratów”.

Ten pierwszy wysiłek nie doszedł do skutku; Pilot ACE po prostu nie miał pojemności wymaganej do gry w warcaby, ale zilustrował aspekt zainteresowania Strachey, który okazał się kluczowy w rozwoju języków, które doprowadziły do ​​C. W czasach, gdy komputery były cenione głównie za ich zdolność szybkiego rozwiązywania równań, Strachey był bardziej zainteresowany ich zdolnością do wykonywania zadań logicznych (co później potwierdził podczas spotkania Association for Computing Machinery w 1952 r.).

Później tej wiosny dowiedział się o komputerze Ferranti Mark I, który został zainstalowany na Uniwersytecie w Manchesterze, gdzie Alan Turing był zastępcą dyrektora laboratorium komputerowego. Turing napisał podręcznik programisty, a Strachey znał go na tyle dobrze z ich wspólnego pobytu w Cambridge, że poprosił go o egzemplarz podręcznika.

W lipcu 1951 roku Strachey miał okazję odwiedzić Manchester i osobiście omówić swój program gry w warcaby z Turingiem. Będąc pod odpowiednim wrażeniem, Turing zasugerował, aby w pierwszej kolejności napisać program, który umożliwi Ferranti Mark I symulację samego siebie. Symulator pozwoliłby programistom zobaczyć krok po kroku, jak komputer wykona program. Taki program „śledzący” wskazywałby miejsca, w których program powodował wąskie gardła lub działał nieefektywnie. W czasach, gdy zarówno pamięć komputera, jak i cykle procesora kosztowały fortunę, był to ważny aspekt programowania.

Program śledzenia, który napisał Strachey, zawierał ponad tysiąc instrukcji – w tamtym czasie był to najdłuższy program, jaki kiedykolwiek napisano dla Ferranti Mark I. Strachey uruchomił go po wyciągnięciu całonocnego, a kiedy program się zakończył, Według Campbell-Kelly’ego zagrał „God Save the King” na głośniku komputera.

To osiągnięcie, dokonane przez amatora, zwróciło uwagę Lorda Halsbury, dyrektora zarządzającego National Research and Development Corporation, który wkrótce zwerbował Stracheya, aby stanął na czele wysiłków rządu na rzecz promowania praktycznych zastosowań szybkiego rozwoju informatyki na brytyjskich uniwersytetach.

Właśnie w tym charakterze dowiedział się o projekcie w Cambridge podjętym przez trójkę programistów o imieniu David.

David i Goliat tytan

Centrum obliczeniowe Uniwersytetu Cambridge było mocno zorientowane na usługi. Pierwsze komputery Laboratorium Matematycznego, EDSAC i EDSAC 2, zostały udostępnione badaczom z innych części uniwersytetu, którzy napisali programy, które były wycinane na taśmie papierowej i wprowadzane do maszyny.

W centrum obliczeniowym te taśmy papierowe były przypinane do sznurka na bieliznę i wykonywane jedna po drugiej w godzinach pracy. Ta linia oczekujących programów stała się znana jako „kolejka zadań”, termin, który nadal jest używany do opisania znacznie bardziej wyrafinowanych sposobów organizacji zadań obliczeniowych.

Przy godzinie 6:55 ciesz się akcją „kolejki zadań” EDSAC.

Zaledwie dwa lata po uruchomieniu EDSAC 2 uniwersytet zdał sobie sprawę, że wkrótce będzie potrzebna znacznie mocniejsza maszyna, a aby to osiągnąć, będą musieli kupić komercyjny komputer typu mainframe. Uniwersytet rozważał zarówno IBM 7090, jak i Ferranti Atlas, ale nie było ich stać na żadne z nich. W 1961 roku Peter Hall, kierownik działu w Ferranti, zasugerował, że mogliby wspólnie z Cambridge University opracować okrojoną wersję komputera Atlas. Cambridge otrzyma prototyp, nazwany „Titan”, a Ferranti będzie w stanie sprzedać nowy komputer klientom, których nie stać na system Atlas.

Aby móc świadczyć usługi informatyczne dla reszty uniwersytetu, ten nowy komputer wymagałby zarówno systemu operacyjnego, jak i co najmniej jednego języka programowania wysokiego poziomu.

Niewiele uwagi poświęcono rozszerzeniu języka, który został opracowany dla EDSAC 2. „We wczesnych latach 60-tych powszechne było myślenie:„ Budujemy nowy komputer, więc potrzebujemy nowego języka programowania ”- wspomina David Hartley w podcastu z 2017 roku. Wraz z Davidem Wheelerem i Davidem Barronem Hartley byłby zaangażowany we wczesny rozwój języka programowania tego nowego komputera.

„Nowy system operacyjny był nieunikniony”, twierdzi Hartley, ale nowy język programowania nie. „Myśleliśmy, że to okazja do zabawy nowym językiem – co z perspektywy czasu było cholernie głupią rzeczą”.

Maurice Wilkes, który nadzorował projekt Titan, uznał, że nie ma potrzeby tworzenia nowego języka programowania. Głównym uzasadnieniem dla Tytana było świadczenie usług obliczeniowych dla reszty Uniwersytetu w Cambridge, a do tego najlepiej byłoby, gdyby maszyna została uruchomiona tak szybko, jak to możliwe i wyposażona w język, który już znali użytkownicy.

Wilkes wymagał analizy dostępnych języków programowania przed zatwierdzeniem propozycji opracowania nowego języka. „Wybraliśmy je bardzo ostrożnie” – powiedział Hartley – „aby zdecydować, że żaden z nich nie jest odpowiedni”. Warto zauważyć, że grupa robocza oceniła Fortran IV bez konsultacji z użytkownikami Fortrana w Cambridge, którzy mogliby wyjaśnić dodatkowe funkcje zawarte w innych odmianach Fortrana. Z tego powodu Hartley przypomniał sobie, że grupa była przekonana, że ​​„możemy łatwo zdefiniować i opracować coś znacznie lepszego”, zanim zauważył, że „ta porażka dotarła do domu za kilka lat”.

Ostatecznie w czerwcu 1962 roku trio przygotowało artykuł, w którym argumentowano, że nowy język jest konieczny, „i nam też uszło na sucho” – podsumował Hartley.

Ten nowy język programowania został nazwany CPL (Cambridge Programming Language), a prace były już bardzo zaawansowane do 1963 roku. Do programistów z Cambridge dołączyli John Buxton i Eric Nixon z University of London, a CPL został poprawiony, aby oznaczać Combined Programming Język. Wraz z rozwojem projektu Wilkes zdecydował się zatrudnić Christophera Stracheya do nadzorowania projektu, a CPL wkrótce zaczął oznaczać „język programowania Christophera” dla osób z nim związanych, według Campbell-Kelly.

Grupa badaczy pracujących nad językiem spotykała się w Cambridge lub w Londynie, czasem na Uniwersytecie Londyńskim, ale czasami w pracowni artysty w kamienicy Kensington, którą Strachey dzielił z siostrą. Pokój na tyłach domu był wyposażony w wiktoriańskie krzesła i poduszki na podłodze, a ściany zdobiły portrety różnych członków Bloomsbury Group namalowane przez jednego z krewnych Stracheya. W tym miejscu Strachey „stanął przed sądem”, od czasu do czasu w szlafroku, a jak wspominał David Barron kilka lat później, „przed rozejściem się wieczorem do różnych domów przekonywaliśmy świat o prawa”.

Do tego czasu David Wheeler zajął się innymi projektami, pozostawiając za sobą pięcioosobowy zespół: Hartley, Barron, Buxton, Nixon i Strachey.

Hartley lubił pracować nad CPL; „To była naprawdę fajna praca” – wspomina. Spotkania miały raczej nieformalny charakter. „Bardzo się denerwowaliśmy i w końcu zaczynaliśmy rzucać papierowymi rzutkami [airplanes] na siebie ”.

Grupa rozpoczęła od specyfikacji ALGOL 60, mając na celu napisanie „doskonałego” języka: takiego, który byłby praktyczny dla różnych użytkowników, ale także estetyczny i wydajny.

Niemal natychmiast mieli trudności z ustaleniem priorytetów, jak zauważył David Barron o Strachey: „Charakterystyczne dla niego było naleganie na drobne różnice z tą samą siłą, z jaką nalegał na główne”. Drobną kwestią był sprzeciw Strachey’a wobec gramatyki zdań „JEŚLI… TO… INNIE”. „Nie mogę pozwolić, by moje nazwisko kojarzyło się z wyraźnym zaleceniem używania ignorancko niepoprawnego angielskiego”, był jego pogląd, jak później Hartley napisał dla Annals of the History of Computing. Strachey wolał „OR”, co było sprzeczne ze sposobem używania „OR” w prawie każdym innym istniejącym języku programowania. Niemniej jednak jego preferencje przetrwały dzień, a podręcznik CPL zawierał „LUB” w miejscu, w którym użytkownicy oczekiwaliby „INNE”.

Podręcznik CPL, <a href =
Podręcznik CPL, oczywiście dostępny online.

Poświęcono również cenny czas na opracowanie sposobu uniknięcia używania gwiazdki do oznaczania mnożenia. W tym przypadku obawy estetyczne doprowadziły do ​​komplikacji, które opóźniły implementację użytecznego języka programowania, ponieważ trzeba było opracować skomplikowane reguły, aby rozróżnić „3a” oznaczające „3 * a” i „3a” jako nazwę zmiennej.

Przez cały czas użytkownicy Cambridge byli coraz bardziej sfrustrowani brakiem używalnego języka programowania dla nowego komputera Atlas uniwersytetu. Specyfikacje języka zostały w większości ukończone, ale nie było dostępnego kompilatora. Grupa robocza tak skomplikowała CPL, że wczesne próby napisania kompilatora spowodowały, że kod maszynowy był niewiarygodnie nieefektywny.

Zostaw komentarz

Maciek Luboński
Z wykształcenia jestem kucharzem , ale to nie przeszkadza mi pisać dla Was tekstów z wielu ciekawych dziedzin , których sam jestem fanem.Piszę dużo i często nie na tak jak trzeba , ale co z tego skoro tak naprawdę liczy się pasja.

Najlepsze recenzje

Video

gallery

Facebook