Czy istnieje przegląd semantyki różnych funkcji języka programowania?


12

Czy istnieje ankieta (z artykułu, rozdziału książki, samouczka, linków, ...) semantyki różnych funkcji języka programowania? Początkowo byłem przytłoczony funkcjami D tutaj http://www.digitalmars.com/d/2.0/comparison.html

Chciałbym zobaczyć, co mógłbym stąd uzyskać, chociaż zadałem podobne pytanie na temat przepełnienia stosu i rozumiem, że te dwie witryny mają różne perspektywy.

Naprawdę doceniam twoją odpowiedź! Dzięki Dave'owi Clarke'owi za sugestie dotyczące meta


Myślę, że to pytanie rodzi interesujący problem: czy semantyka języków programowania jest nadal obszarem badawczym w laboratorium, czy jest gotowa na światło dzienne? Jeśli jest gotowy na światło dzienne, powinny istnieć kompendia, które opisują, jak opisać semantykę każdej funkcji języka programowania, aby przyszli projektanci języków mogli je znaleźć i sprawdzić podczas projektowania swoich języków. Myślę, że warto zastanowić się, dokąd chcemy iść stąd.
Uday Reddy,

Odpowiedzi:


17

Nie znam żadnego przeglądu semantyki różnych funkcji językowych, chociaż istnieje wiele książek dotyczących semantyki języków programowania. Oto kilka bardziej kompleksowych, które dotyczą również mniej standardowych konstrukcji:

  • Koncepcje projektowe w językach programowania autorstwa Franklyna Turbaka, Davida Gifforda i Marka Sheldona. Mamutowa książka pełna semantyki wielu różnych konstrukcji językowych.

  • Koncepcje, techniki i modele programowania komputerowego autorstwa Petera Van Roya i Seifa Haridi. Ta książka koncentruje się głównie na pojęciach dotyczących języka Oz. Każdy przykład w książce działa. Na końcu książki znajduje się rozdział lub dwa omawiające formalną semantykę konstrukcji językowych.

Bardziej klasyczne teksty, które kładą większy nacisk na techniki semantyczne niż na różnorodność konstrukcji języka programowania, obejmują:

  • Rodzaje i języki programowania : Benjamin Pierce. Książka o systemach typów. Koncentruje się głównie na funkcjonalnych konstrukcjach językowych, jednocześnie zwiększając stopień zaawansowania systemu typów. Obejmuje także Featherweight Java, podstawowy rachunek języka Java.

  • Przejścia i drzewa Hansa Huttela. Ładne wprowadzenie do semantyki operacyjnej, obejmujące różne konstrukcje języków o coraz większej złożoności.

  • Semantyka z aplikacjami Hanne Riis Nielson i Flemming Nielson. Wprowadzenie do różnych stylów semantyki, w tym ich niektórych nieoczywistych zastosowań. Świetna lektura!

  • Struktura typowanych języków programowania autorstwa Davida A Schmidta. Solidna podstawowa książka.

  • Semantyka języków programowania: struktury i techniki Carla A Guntera. Kolejna solidna książka fundamentalna.

Wreszcie, trwające prace, szeroko dostępne do pobrania, praktyczne podstawy dla języków programowania autorstwa Boba Harpera, obejmują wiele różnych funkcji języka programowania, zapewniając, że wszystko jest sformalizowane po drodze.

Powinienem dodać, że jeśli zadasz bardziej szczegółowe pytanie, otrzymasz bardziej szczegółową odpowiedź. Istnieje wiele prac naukowych nadających semantykę różnym funkcjom języka programowania. Jeśli byłeś zainteresowany konkretną funkcją, mógłbym wykopać jeden lub dwa artykuły na temat tej funkcji.


11

Inną dobrą książką na temat semantyki operacyjnej jest Semantics Engineering with PLT Redex autorstwa Matthiasa Felleisena, Robby Findlera i Matthew Flatt. Zaczyna się od podręcznika dotyczącego semantyki redukcji i maszyn abstrakcyjnych, a także obejmuje użycie narzędzia Redex do modelowania semantyki języków programowania.


5
Miło widzieć kolejną osobę PL na pokładzie.
Dave Clarke
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.