Antoni Kreczmar (ur. 1945 w Warszawie, zm. 23 października 1996 tamżedane biograficzne na stronie Sejmu Wielkiego) – polski informatyk i matematyk, doktor habilitowany, pracownik naukowy Instytutu Informatyki Uniwersytetu Warszawskiego.
Pochodził z rodziny Kreczmarów, nauczycieli od pokoleń, a później także ludzi teatru i filmuZob. rozdział o Kreczmarach w zobacz też Jan Kreczmar, Justyna Kreczmarowa, Zbigniew Zapasiewicz, Adam Kreczmar.. Był synem Jerzego Kreczmara. W roku 1973 obronił rozprawę doktorską Effectivity problems of Algorithmic Logic, promowaną przez prof. Helenę Rasiową. W 1977 napisał pracę "Programmability in fields", przedstawioną później jako rozprawę habilitacyjną na Wydziale Matematyki UWDr hab. Antoni Kreczmar. Spoczywa w grobowcu rodzinnym na cmentarzu Powązkowskim w Warszawie (kw. 190–V–24/25). thumb|Grób Antoniego Kreczmara na warszawskim cmentarzu Powązkowskim
Osiągnięcia naukowe W zakresie logiki algorytmicznej Jego pierwsze badania (rozprawa doktorska) dotyczyły oszacowania zbioru tautologii logiki algorytmicznej. Wykazał, że zbiór ten nie mieści się w żadnej klasie arytmetycznej hierarchii Kleene-Mostowskiego.[] Udowodnił, że ciało liczb wymiernych jest scharakteryzowane z dokładnością do izomorfizmu przez aksjomaty ciała oraz własność stopu algorytmu Euklidesa []. Wynika stąd, że każda prawdziwa własność algorytmiczna dowolnego programu P działającego w jakimś ciele Euklidesowym może być wyprowadzona z aksjomatów uporządkowanego ciała Euklidesowego, tzn. z aksjomatów ciała wzbogaconych o następującą formułę:
którą należy czytać: dla każdych nieujemnych wartości x i y, program(algorytm) Euklidesa kończy obliczenia. A dokładniej, program ujęty w nawiasy {} kończy swoje obliczenia i jego wyniki spełniają formułę x=y następującą po nim. Jest to przykład formuły algorytmicznej. Zauważ, że formuła ta nie jest prawdziwa w dziedzinie liczb rzeczywistych, w dziedzinie odcinków na płaszczyźnie z odejmowaniem odcinków i porównywaniem ich długości, ani w dziedzinie liczb zespolonych. udowodnił, że zbiór własności algorytmicznych prawdziwych w dziedzinie liczb rzeczywistych to formuły dające się wyprowadzić ze schematu aksjomatów liczb formalnie rzeczywistych []. Jest współautorem pierwszej monografii na temat logiki algorytmicznej [].
W zakresie złożoności obliczeniowej zmodyfikował algorytm Strassena mnożenia macierzy uzyskując znaczne zmniejszenie zapotrzebowania na dodatkowe komórki pamięci roboczej [] z na (Jak zazwyczaj, przyjmuje się, że mówimy o mnożeniu macierzy o rozmiarach ).
po raz pierwszy w Polsce poprowadził wykład ze złożoności obliczeniowejW r. 1974 w Instytucie Informatyki UW.,
był współautorem polskiego tłumaczenia ważnej dla pokoleń informatyków książki Projektowanie i analiza programów komputerowych autorstwa A. Aho, J. Hopcrofta i J. Ullmana,
jest współautorem trzech książek o analizie algorytmów Elementy analizy algorytmów [], Analiza algorytmów i struktur danych [], Analysis of Algorithms and Data Structures []
W zakresie języków programowania obiektowego Jest współautorem języka programowania obiektowego Loglan'82 [, ]
Jest autorem running systemu (dzisiaj częściej używa się nazwy maszyna wirtualna) dla języka Loglan'82. Przy tej okazji rozwiązał wiele problemów: Czy istnieje taki system zarządzania pamięcią obiektów, w którym można usuwać niepotrzebne obiekty w sposób bezpieczny (tzn. bez ryzyka powstania wiszących referencji) i w czasie stałym? W jaki sposób należy odszukiwać wystąpienie deklarujące dany identyfikator używany w danym miejscu programu? Czy można zaadaptować (zachować) mechanizm Display Vectora? Jak ma działać system współprogramów? Opracował bezpieczny i efektywny system zarządzania pamięcią obiektów, [, ], jest to system kompletny, oferujący operacje: tworzenia nowego obiektu i rezerwowania pamięci dla niego, kompresji kopca obiektów, odśmiecania kopca, tj. pamięci obiektowej i przede wszystkim operację kill bezpiecznego usuwania obiektu. Tutaj omówimy jego unikalną cechę wyrażającą się w postaci poniższego schematu: Schemat aksjomatu instrukcji kill
Niech x1, ... ,xn będą zmiennymi, n>0, 1≤i≤n. Każda formuła o podanym poniżej schemacie jest twierdzeniem running systemu Kreczmara.
co się czyta: jeżeli na pewien obiekt o wskazuje n zmiennych to po wykonaniu instrukcji kill(xi) wspólną wartością tych zmiennych jest none (oznacza to, że sam obiekt o jest od tej pory niedostępny i może być przez tę samą instrukcję kill bez szkody usunięty). W konsekwencji: nie ma potrzeby powtarzania operacji kill(x1),kill(x2), ... nie występuje zjawisko wiszących referencji, każda próba odniesienia się do atrybutu obiektu, który wcześniej został usunięty zostanie wykryta i spowoduje zgłoszenie wyjątku „reference to none”. Należy podkreślić, że koszt operacji kill jest stały, niezależny od liczby n wskaźników na usuwany obiekt. Taki system zarządzania pamięcią obiektów zastosowano tylko raz, w implementacji języka Loglan'82.
System zarządzania obiektami jest pomyślany całościowo, dostarcza operacji:
wspomagających powstanie obiektu – new, sprawdzających legalność operacji dostępu do atrybutów obiektu, usuwania obiektu na żądanie, defragmentacji i odśmiecania pamięci obiektowej.
Porównaj sposoby pozbywania się niepotrzebnych obiektów
model A (Loglan'82) Model B (C++ 1986) Model C (Java 1995, Python) Przed Na pewien obiekt o wskazują zmienne x1,x2, ..., xn. Instrukcja kill(xi) delete(xi) x1=null;x2=null; ... xn=null;Po wykonaniu instrukcji gc() obiekt zostanie usunięty. Po Wszystkie zmienne przyjęły wartość none. Obiekt został usunięty. Obiekt o został usunięty. x ma wartość null. Inne zmienne wskazują na zwolnione pole – jest to groźny błąd – wiszącej referencji. Obiekt został usunięty, pod warunkiem, że nie zapomniano o żadnej zmiennej wskazującej na obiekt oSytuacja w Pythonie wymaga dłuższego opisu. Programista może mianowicie niektóre referencje do obiektu o określić jako słabe. Zwalnia go to z obowiązku pamiętania, że takie referencje do obiektu o istnieją. Wystarczy osunąć tylko silne referencje do obiektu, by przy odśmiecaniu obiekt ten został usunięty.. Koszt Stały (nieduży) Stały (nieduży). Znaczny, zależny od liczby zmiennych wskazujących na obiekt i od łącznego rozmiaru pamięci obiektowej (koszt operacji gc()). Ryzyko Brak(!).Próba dostępu do obiektu o podnosi wyjątek reference to none. Duże prawdopodobieństwo (przy n>1) błędu wiszących referencjiDuże prawdopodobieństwo błędu sprzecznych informacji. Spore szanse na to, że programista zapomni usunąć, którąś referencję do niepotrzebnego obiektu.
Opracował na nowo system zarządzania obiektami współprogramów (ang. coroutines)[]. Usunął w ten sposób sprzeczności występujące w systemie współprogramów w języku Simula67. Rozwiązał razem z H. Langmaackiem, M. Krause i M. Warpechowskim problem adaptacji mechanizmu Display Vectora dla klasy języków z klasami zagnieżdżanymi i z dziedziczeniem [, zobacz też ]E.W. Dijkstra [E.W. Dijkstra, Recursive programming, Numerische Mathematik 2 (1960) 312–318] opracował mechanizm znany jako Display Vector, który pozwala przyśpieszyć dostęp do wielkości nielokalnych w językach programowania z zagnieżdżaniem procedur np. Algol60, Pascal. Nie było wiadomo, czy mechanizm ten da się zastosować w językach, które mają mechanizmy dziedziczenia bardziej liberalne niż Simula67, np. Loglan'82, czy później powstały język Java?. Podał prawidłowe rozwiązanie problemu statycznego wiązania aplikacyjnych wystąpień identyfikatorów z odpowiednią deklaracją []. Jest współautorem kolejnej (niezrealizowanej) wersji języka Loglan (zobacz ]). Stworzył running system dla języka Loglan'88.
Inne Wypromował 5 doktorantów. Dwóch z nich zostało profesorami.
Został wyróżniony nagrodą państwową 1. stopnia (zespołową) w dziedzinie nauki, za opracowanie i realizację języka programowania obiektowego Loglan'82, [nagroda w roku 1986].
Przyczynił się do rozwoju internetu w Polsce w latach 90. XX wiekuBył delegatem Senatu UW w projekcie NASK w latach 90 XX wieku..
W 1989 był współorganizatorem konferencji Mathematical Foundations of Computer Science w Porąbce [].
W latach 1994–1996 był dyrektorem departamentu Informatyki w Ministerstwie Finansów. Zmarł w trakcie pracy nad zadaniem zbudowania systemu POLTAX, informatycznego systemu podatkowego.
Odznaczony pośmiertnie Krzyżem Kawalerskim Orderu Odrodzenia Polski.
Wybrane publikacje W jego dorobku publikacyjnym znajdują się m.in.: [Kreczmar 1977a] [Kreczmar 1977b] [Kreczmar, Cioni 1984] [Banachowski, Kreczmar 1989] [Banachowski, Kreczmar, Rytter 1987] [Banachowski, Kreczmar, Rytter 1991] [Loglan 82] [Kreczmar 1976] [Grabowski, Kreczmar 1978] [Kreczmar, Oktaba, Ratajczak, Litwiniuk 1983] [Kreczmar i in 1984] [Kreczmar 1982] [Kreczmar i in. 1986] [Kreczmar, Salwicki, Warpechowski 1990] [Cioni,Kreczmar 1989] [Cioni,Kreczmar, Vitale 1989] [Kreczmar, Mirkowska 1989] [Kreczmar 1977] [Kreczmar 1977] [Kreczmar 1979] [Banachowski i in.]
Zobacz też odśmiecanie pamięci
Przypisy
Linki zewnętrzne
Kategoria:Polscy matematycy XX wieku Kategoria:Polscy informatycy Kategoria:Nauczyciele akademiccy Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego Kategoria:Absolwenci Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego Kategoria:Odznaczeni Krzyżem Kawalerskim Orderu Odrodzenia Polski (III Rzeczpospolita) Kategoria:Urodzeni w 1945 Kategoria:Zmarli w 1996 Kategoria:Ludzie urodzeni w Warszawie Kategoria:Pochowani na cmentarzu Powązkowskim w Warszawie