GNU Guile

Podstęp

Informacja
Opracowany przez Projekt GNU
Pierwsza wersja 1997
Ostatnia wersja 2.2.7 (7 marca 2020 r)
3.0.5 (7 stycznia 2021 r)
Kaucja git.savannah.gnu.org/cgit/guile.git
Napisane w VS
Berło Ncurses
System operacyjny GNU / Linux , BSD ( d ) i Microsoft Windows
Środowisko GNU , GNU / Linux
Rodzaj Język programowania
Licencja GNU LGPL
Dokumentacja www.gnu.org/software/guile/manual
Stronie internetowej (en) Oficjalna strona

Guile ( GNU Ubiquitous Intelligent Language for Extensions ) jest interpretatorem języka programowania Scheme opracowanego w ramach Projektu GNU, aby służyć jako oficjalny język rozszerzeń systemu operacyjnego GNU .

Historyczny

W 1994 roku Richard Stallman przedstawił swoje pomysły na zaprojektowanie języka rozszerzeń dla Projektu GNU. Jednym z głównych pomysłów było to, że użytkownicy powinni mieć wybór języka programowania. Głównym rozważanym językiem był wariant Schematu, ale inne języki mogły być obsługiwane przez tłumaczy.

Tom Lord od razu przystąpił do pracy nad projektem. W 1995 roku udostępniono dwie pierwsze działające wersje. Firma Cygnus Support dodała wiele funkcji i wyjęła własne wersje Cygnus Guile r0.3 i R0.4. Pierwsza oficjalna wersja Projektu GNU ukazała się w 1997 roku.

Projekt jest w szczególności utrzymywany przez Andy'ego Wingo .

Charakterystyka techniczna

Guile może być używany jako klasyczny interpreter schematu. Ale został zaprojektowany od początku do być zintegrowane jako język rozszerzenia w programach napisanych w języku C .

Guile obsługuje wiele rozszerzeń języka Scheme , a także różne moduły systemowe, programowanie sieciowe i wielowątkowość .

Działa jako interpreter lub jako kompilator schematu kodu bajtowego na maszynie wirtualnej .

Infrastruktura kompilacji i maszyna wirtualna

Guile 2.0 kompiluje kod schematu do kodu bajtowego , który jest następnie interpretowany przez maszynę wirtualną. Daje to zauważalną poprawę wydajności w porównaniu ze starszymi wersjami Guile.

Kod źródłowy jest domyślnie automatycznie kompilowany po znalezieniu, bez ręcznej interwencji. Jednak polecenie kompilacji guile-tools zapewnia interfejs wiersza poleceń oraz procedury schematu do zarządzania kompilatorem.

Oprócz Scheme, kompilator zawiera interfejs dla języków ECMAScript i Emacs Lisp .

REPL i Debugger

Nowa REPL  (in) jest dostępna od wersji 2.0 z funkcjami upraszczającymi tego typu interaktywne programowanie. REPL jest również wyposażony w możliwości debugowania .

Historia wersji

Wersja Data wydania Główne zmiany
2.0.3 22 października 2011
  • Nowy moduł ( synchroniczny klient sieciowy ), optymalizacja z nowym częściowym ewaluatorem  (en) dla programów schematycznych o nazwie peval .
2.0.2 2 lipca 2011
  • Wersja konserwacyjna (wyrażenie `` while '', szybszy kompilator, wzrost wydajności maszyny wirtualnej itp.)
2.0.1 27 kwietnia 2011
  • Wersja serwisowa (REPL, unicode standardu R6RS itp.)
2.0.0 16 lutego 2011
  • Dodanie kompilatora i maszyny wirtualnej.
  • Wsparcie dla Unicode .
  • Migracja do miękiszu z Boehm-Demers-Weiser .
  • SXML wsparcie i narzędzia dla XML przetwarzania .
  • Częściowe wsparcie standardu Scheme R6RS .
  • Moduł sieciowy , obsługa URI i przetwarzanie HTTP .

Projekt GNU

Guile jest oficjalnym językiem rozszerzenia Projektu GNU. Tom Tromey, opiekun projektu GNU Debugger , ogłosił jednak swoje wycofanie się z GDB 8 października 2010, preferując Python jako jedyny język rozszerzeń.

Scenariusze użytkowania

Używanie Guile w aplikacji umożliwia programistom pisanie wtyczek i pozwala użytkownikom mieć aplikację, która lepiej odpowiada ich potrzebom.

W rzeczywistości Guile można zintegrować z oprogramowaniem stron trzecich w postaci biblioteki oprogramowania, której interfejs zapewnia im funkcje języka Scheme i powiązanych modułów. Guile jest zatem używany jako język rozszerzający w wielu aplikacjach, w tym Gimp , Anubis , GnuCash , LilyPond , MDK , Robots , Serveez , TeXmacs czy Scwm

Hakerzy z projektu GNU Guile pracują również od 2010 roku nad całkowitą migracją z GNU Emacs do Guile, Emacs Lisp jest obecnie wdrażany przez Guile.

Bibliografia

Dopełnienia

GNU Guile-Ncurses

Guile-Ncurses to implementacja Ncurses umożliwiająca tworzenie tekstowych interfejsów w języku Scheme / Guile. Daje interpreterowi Scheme GNU Guile możliwość interakcji przy wprowadzaniu znaków w trybie tekstowym środowiska , niezależnie od terminala . Jest to pakiet bazowych bibliotek Ncurses . Ten projekt, którego pierwsza stabilna wersja pochodzi z 2010 roku, jest nadal utrzymywany przez tzw. Mike'a Grana, jego twórcę.

Inne powiązane projekty

Istnieje wiele projektów peryferyjnych niezależnych od Projektu GNU, ale poświęconych GNU Guile w formie modułów , między innymi:

Uwagi i odniesienia

Bibliografia

  1. (w) Ludovic Courtes ( d ) , „  Wydano GNU Guile 2.2.7  ” ,7 marca 2020 r(dostęp 8 stycznia 2021 )
  2. (w) Andy Wingo, „  Wydano GNU Guile 3.0.5  ” ,7 stycznia 2021 r(dostęp 8 stycznia 2021 )
  3. Dyskusje o wadach języka Tcl: http://www.vanderburg.org/OldPages/Tcl/war/ i http://www.vanderburg.org/OldPages/Tcl/war2/
  4. (w) „  osobisty opiekun witryny  ” na wingolog.org ,12 września 2010(dostęp 11 września 2012 )
  5. (in) Podręcznik Guile, sekcja 2.1 http://www.gnu.org/software/guile/manual/html_node/What-is-Guile_003f.html#What-is-Guile_003f
  6. (w) Kompilacja projektu w locie jest również rozwijany .
  7. (in) The Revised6 Report on the Algorithmic Language Scheme . Szósta wersja raportu algorytmicznego schematu językowego
  8. (en) Wsparcie w Guile nie jest utrzymywane GDB .
  9. (w) „  GNU Guile-Ncurses  ” w katalogu.fsf.org , FSF ,27 października 2014
  10. (in) GNU guile-ncurses 1.0 osiągnięto 4 października 2010.
  11. (w) nongnu.org, „  Guile-PG  ” (dostęp 11 lutego 2012 )
  12. (en) Thien-Thi Nguyen, Guile-PG 0,43 dostępne , źródła podstępne,6 lutego 2012( czytaj online ).
  13. (en) Thien-Thi Nguyen, Guile-WWW 2.35 dostępne , źródła podstępne,6 listopada 2012( czytaj online )..
  14. (w) „G-Wrap” , nongnu.org , 16 grudnia 2011.
  15. (w) „Guile-0.4.1 SDL dostępne” , lista źródeł guile diffudion , 16 listopada 2012.
  16. (w) „Mixp” , nongnu.org , 22 sierpnia 2011.
  17. (w) „Mixp 0.6 dostępny” , lists.gnu.org , 25 stycznia 2012.

Uwagi

  1. Wersja 2.0 pozostaje w oparciu o standard Scheme R5RS, częściowo wdrażając nowy standard R6RS . Guile to główna implementacja Schematu Projektu GNU, druga to Schemat MIT / GNU .

Linki zewnętrzne