Dennis M. Ritchie
Dennis M. Ritchie

Dennis M. Ritchie urodził się 9 września 1941 roku w Bronxville w stanie Nowy Jork. Ukończył studia na Uniwersytecie Harvardzkim. W trakcie studiów zajmował się fizyką, a następnie matematyką stosowaną. Tematem jego pracy doktorskiej, w 1968, była subrekursywna hierachia funkcji. Swojej przyszłości Ritchie jednak nie związał z fizyką ani matematyką teoretyczną. Sam o sobie, nieco żartobliwie, mówi: "Moje doświadczenia z początkowych czasów studiów dały mi przekonanie, że nie byłem wystarczająco bystry, aby zostać fizykiem, a komputery były całkiem wdzięcznym zajęciem. Moje późniejsze studenckie doświadczenia dały mi przekonanie, że nie byłem też wystarczająco bystry, aby zostać ekspertem od teorii algorytmów, a poza tym bardziej lubiłem proceduralne języki programowania od funkcyjnych."
Rok przed obroną pracy doktorankiej, tj. w 1967, Dennis Ritchie otrzymał pracę w Laboratoriach Bella. Jego ojciec Alistair E. Ritchie był tam wieloletnim pracownikiem - był on współautorem książki "The Design of Switching Circuits" ("Projektowanie Obwodów Przełączających") ; publikacja ta miała wielki wpływ na zagadnienia związane z projektowaniem obwodów logicznych, tuż przed erą tranzystora.
Wkrótce po dołączeniu do Laboratoriów, Dennis Ritchie znalazł się w zespole pracującym nad projektem Multics - współpracował Bell Labs, MIT i General Electric. Pomagał tam w tworzeniu kompilatora języka BCPL dla komputera Multics (GE 645) oraz GE 635 działających pod kontrolą systemu GECOS. Napisał także kompilator języka obliczeń symbolicznych ALTRAN.
Dwa lata po wstąpieniu Ritchiego w szeregi załogi z Bell Labs, tj. w 1969, datuje się narodziny systemu operacyjnego Unix. Narodzinom tym towarzyszyło wiele trudności, takich jak, choćby próby wynegocjowania funduszy na zakup maszyny, na której system miał być implementowany. Obok zmagań o podłożu finansowym, trwały prace teoretyczne. Wszystko zaczęło się od szkicu systemu plików, który przygotował głównie Ken Thompson przy wsparciu R. H. Canaday`a oraz Dennisa M. Ritchie`go (Ritchie wpadł na pomysł stworzenia "device files"). Zaimplementowano symulację file systemu na wspomnianym wcześniej Multics`ie.
W tym czasie Thompson napisał grę komputerową "Space Travel" na komputer Multics, potem przepisaną na GECOS. Gra polegała na podróżach pomiędzy planetami Układu Słonecznego i obserwowaniu scenerii. Wystąpiły jednak dwa problemy. Wyświetlacz GECOSa był niewygodny do kontrolowania przebiegu gry, a po drugie koszt czasu procesora na tym komputerze wynosił aż 75 dolarów. Niezbyt wiele czasu zajęło Thompsonowi znalezienie mało używanego komputera PDP-7, na który wraz z Ritchiem przepisali grę. Również na PDP-7 została przeniesiona, za pomocą papierowej taśmy, zaprogramowania uprzednio na GECOSie, wersja systemu UNIX. Wszystko to zostało dokonane do 1970 roku, kiedy to Brian Kernighan zaproponował nazwę "UNIX" dla nowego systemu. Następnie UNIX doczekał się swojej implementacji na nowo zakupionym PDP-11. Ewolucja UNIXa zajęła wiele lat, np. w 1972 pojawił się znany wszystkim mechanizm pipes ( program1 | program2 ). Pojawiło się kilka programów użytkowych, takich jak np. procesor tekstu. Pierwotnie, na PDP-7 UNIX został zaimplementowany w Asemblerze. Jak pisze Ritchie: "Pierwszym interesującym językiem, który pojawił się był TMG McClure`a zaimplementowany przez McIlroy`a. Zanim TMG został udostępniony, Thompson stwierdził, że nie powinniśmy udawać, że dysponujemy prawdziwym system obliczeniowym bez Fortrana, więc zabrał się do napisania kompilatora Fortrana w TMG. Później przyszedł czas na kompilator powiązanego z BCPL języka B. W 1971 roku rozpoczęto pracę nad następcą B, językiem C. Przełomowy moment został odnotowany w 1973 roku kiedy to kernel UNIXa został przepisany na język C. Ritchie stwierdza, że: "Dzisiaj tylko mała część UNIXa napisana jest w Asemblerze. Większość programów użytkowych i innych aplikacji napisana została w C, choć zdarzają się implementacje w Fortranie, Pascalu oraz Algolu68. Wydaje się być pewnym, że sukces UNIXa jest pochodną czytelności kodu, łatwości modyfikacji oraz przenośności, co jest zasługą użycia języków wysokiego poziomu."

Ken Thompson (siedzi) i Dennis Ritchie przykomputerze PDP-11
Ken Thompson (siedzi) i Dennis Ritchie przykomputerze PDP-11

Język C został zdefiniowany w 1972 roku, przez Dennisa M. Ritchie`go. Jest on następcą języka B (stworzony przez Kena Thompsona w 1970 roku), który to z kolei wywodzi się od BCPL (język BCPL został zaprojektowany przez Martina Richardsa z University Mathematical Laboratories w Cambridge). Oto co pisze James Jouce w swoim artykule "A C Language Primer" (BYTE, 1983. Vol.8. No.8): "Ponieważ litery B i C są kolejnymi literami zarówno w alfabecie, jak i w nazwie BCPL, niektórzy uważają, że kolejna wersja języka będzie nosić nazwę D, inni natomiast - że P. Wielu jest jednak przekonanych, że podobnie jak Algol 68 i PL/I, C jest językiem programowania i jest to jego ostateczna wersja." Choć nazwa języka się już nie zmieniła to w istocie przeszedł on kilka korekt (deklaracje funkcji mogą zawierać opis parametrów, wyliczenia, obliczenia zmiennoprzecinkowe dostępne w pojedynczej precyzji, biblioteka standardowa, itd.) wynikających z potrzeby jego standaryzacji. W 1988 roku został ustanowiony standard ANSI C, który jest obecnie powszechnie stosowany.
Ritchie wraz z Brianem W. Kernighanem są autorami wyśmienitego podręcznika "Język ANSI C", który jest moim zdaniem jedną z najlepszych książek, a już na pewno najlepszą, która traktuje o języku C. Książka ta jest dostępna w serii "Klasyka Informatyki" wydawanej przez Wydawnictwa Naukowo-Techniczne.

Książka The C Programming Language została przetłumaczona na wiele języków
Książka The C Programming Language została przetłumaczona na wiele języków

27 kwietnia 1999 roku Dennis M. Ritchie i Ken Thompson otrzymali z rąk prezydenta Stanów Zjednoczonych "National Medal of Technology". Wyróżnienie zostało przyznane za ich osiągnięcia w dziedzinie informatyki, które zaowocowały powstaniem systemu operacyjnego UNIX oraz języka programowania C. Krótki film z ceremonii wręczenia medali można pobrać ze strony http://www.bell-labs.com/project/cineblitz (naprawdę warto zobaczyć; ogromne wyróżnienie i wspaniała uroczystość - np. oficer marynarki wojennej, w białym mundurze, wprowadza Thompsona i Ritchiego do sali).

National Medal of Technology - od lewej: Ken Thompson, Dennis M. Ritchie, prezydent USA Bill Clinton
National Medal of Technology - od lewej: Ken Thompson, Dennis M. Ritchie, prezydent USA Bill Clinton

W chwili, w której pisze te słowa (rok 2000), Dennis M. Ritchie jest szefem departamentu "System Software Research" wchodzącego w skład Bell Labs i Lucent Technologies w Murray Hill, N.J.
Oprócz wymienionych osiągnięć, słynie on także ze swojego udziału w projekcie systemu operacyjnego Plan 9 (wydany w 1995) (http://plan9.bell-labs.com/plan9dist), oraz systemu operacyjnego Inferno (wydany w 1996) .

Dennis M. Ritchie otrzymał wiele nagród, w tym:
nagrodę ACM za wybitną prace z zakresu systemów i języków programowania w 1974; IEEE Emmanuel Piore Award (1982), Bell Laboratories Fellow (1983); Association for Computing Machinery Turing Award (1983); ACM Software Systems Award (1983); C&C Foundation award of NEC (1989); IEEE Hamming Medal (1990). Został przyjęty do U. S. National Academy of Engineering w 1988.
Wiele ciekawych informacji (np. kod źródłowy wczesnej wersji kompilatora C oraz pierwszy manual do UNIXa) można znaleźć na stronie domowej Ritchiego: http://cm.bell-labs.com/cm/cs/who/dmr.

w3cw3c
automatyka przemysłowa