W funkcjonalnym paradygmacie funkcja jest podstawową "strukturą kontrolną". Na przykład operator +
jest również traktowany jako funkcja i można je przekazywać jak każdy inny "obiekt". Zastanawiam się, że gdybym musiał zaimplementować język funkcyjny zabawki, czy zaimplementowałem proste funkcje jako prawdziwe funkcje (tj. Przetłumaczyć +
na rutynową procedurę wywoływania) lub przetłumaczyć je na zwykłe instrukcje, które zostałyby wstawione "w wierszu" do przetłumaczonego kodu. Ale czy dzięki drugiej strategii będę w stanie przekazać je i zastosować je częściowo jak w haskell? Jakie są twoje przemyślenia na temat implementacji/tłumaczenia funkcji jako głównej idei w języku funkcjonalnym?Jak zaimplementować funkcjonalny język programowania?
7
A
Odpowiedz
0
Mogę polecić książkę PJL. Z jego pomocą napisałem kompilator (w latach 1989-90, w Prologu), a książka jest bardzo dobrym wprowadzeniem do tematu.
Może być datowany (napisany w 1987 r., 30 lat temu), ale nadal bardzo dobrze opisuje podstawy. Jest jednak całkowicie skoncentrowany na leniwych językach, takich jak Haskell. W tym czasie Haskell nie istniał, a książka wykorzystuje LML lub Mirandę, poprzedni język, ale języki są bardzo bliskie.
Powiązane problemy
- 1. funkcjonalny język asemblerowy
- 2. Python i język funkcjonalny interop
- 3. Tajemniczy język programowania
- 4. Język skryptowy PHP lub język programowania?
- 5. PHP jako język programowania pulpitu
- 6. Język programowania oparty na Unicode
- 7. . Język Java dla programowania jednoczesnego
- 8. Czy istnieje funkcjonalny język programowania do filtrowania listy w wartościach i falach?
- 9. Niestandardowy język programowania (jar) w Androidzie
- 10. Najbardziej odpowiedni niezależny od platformy język programowania
- 11. TCL jako język programowania po stronie serwera
- 12. Wpływ Lisp na język programowania czynnikowego?
- 13. Czysty język programowania w świecie rzeczywistym?
- 14. Jaki jest najlepszy język programowania uczenia maszynowego?
- 15. Zastosowanie ~ (tyldy) w programowania R Język
- 16. Czy język programowania C ma środowisko uruchomieniowe?
- 17. Jaki jest najbardziej zwięzły język programowania?
- 18. Twój język programowania w przeglądarce (np. JavaScript)?
- 19. Jaki był pierwszy język programowania z wyliczeniami?
- 20. Czy język programowania Erlang a Constraint-Logic?
- 21. Język programowania do wyboru do implementacji algorytmów przekazywania wiadomości rozproszonych
- 22. Jak używać std.socket i std.socketstream? (D język programowania 2.x)
- 23. Funkcjonalny odpowiednik współbieżnego multimapu
- 24. Jak zaimplementować wykresy i algorytmy wykresów w funkcjonalnym języku programowania?
- 25. Funkcjonalny typ kolejki
- 26. Odczyt/dev/input/event w Androidzie przez język programowania Java
- 27. Język programowania do tworzenia DLL: C++ lub C#
- 28. Kryteria aby ustalić, czy jest to język programowania
- 29. Czy istnieje język programowania z semantyką zbliżoną do języka angielskiego?
- 30. Jaki język programowania jest wymagany do utworzenia wtyczki firefox?
Coś takiego, wyobrażam sobie: http://mitpress.mit.edu/sicp/ –
Druga strategia jest znana jako defunctionalization: http://en.wikipedia.org/wiki/Defunctionalization –
Jeśli chcesz Aby wdrożyć zabawkowy język funkcjonalny od podstaw, polecam: skorzystaj z porady tutaj: * http://research.microsoft.com/en-us/um/people/simonpj/Papers/pj-lester-book/ Jeśli chcesz ponownie wykorzystaj czas pracy Haskella, który polecam tutaj: * http://www.grabmueller.de/martin/www/pub/Transformers.en.html –