Impromptu (środowisko programistyczne)

Zaimprowizowany
Splash smaller.jpg
Paradygmat Funkcjonalny , wieloparadygmatyczny
Zaprojektowany przez Andrzej Sorensen
Po raz pierwszy pojawiły się 2005 ; 18 lat temu ( 2005 )
Wersja stabilna
2.5
Dyscyplina pisania Dynamiczne i statyczne
system operacyjny Mac OS X
Strona internetowa zaimprowizowana .moso .com .au
Wpływem
Pod wpływem
extempore

Impromptu to środowisko programistyczne Mac OS X do kodowania na żywo . Impromptu jest zbudowany wokół Scheme , który jest członkiem rodziny języków Lisp . Kod źródłowy jego rdzenia został otwarty jako projekt Extempore .

Opis

Środowisko pozwala na wprowadzanie zmian w programie w czasie jego wykonywania , dzięki czemu zmienne i funkcje mogą być przedefiniowane, a zmiany zaczynają obowiązywać natychmiast. Programista może również tworzyć i planować kod do przyszłego wykonania, a także zdarzenia związane z danymi, takie jak notatki i obiekty graficzne. Po zaplanowaniu zdarzenia wykonywanie jest kontynuowane. Zapętlanie jest wykonywane przy użyciu idiomu zwanego „rekursją czasową”, który działa poprzez asynchroniczne planowanie przez funkcję przyszłego wywołania dla siebie jako ostatecznej akcji.

Biblioteka umożliwia komunikację z Audio Units do syntezy audio oraz z warstwami graficznymi takimi jak QuickTime , Quartz , Core Image , OpenGL do komponowania wideo . Kod napisany w Objective-C można wywołać z edytora, a także frameworki Objective-C mogą wykonywać wywołania interpretera schematu.

Interpreter Scheme firmy Impromptu został początkowo zbudowany na podstawie linii bazowej TinyScheme 1.35, ale od tego czasu został znacznie zmodyfikowany, aby lepiej pasował do kontekstu kodowania na żywo. Dodano moduł wyrzucania elementów bezużytecznych w czasie rzeczywistym oraz integrację z Objective-C . Z systemem zintegrowano również nowy język o typie statycznym, zwany Extempore Language . Ten język jest syntaktycznie podobny do schematu, ale semantycznie bliższy C i jest przeznaczony do syntezy dźwięku w czasie rzeczywistym i innych zadań wymagających dużej mocy obliczeniowej. Zapewnia wnioskowanie o typie i jest kompilowany język maszynowy przez LLVM .

Przykładowa wydajność

A Study in Keith to występ kodowania na żywo w Impromptu autorstwa Andrew Sorensena. Pierwsze dwie minuty (1:56) są ciche, podczas gdy wykonawca pisze program, który wytworzy wprowadzenie utworu. Od tego momentu modyfikuje kod w locie, aby ewoluować kompozycję.

Doraźny

Rdzeń Impromptu został wydany jako Extempore na licencji BSD. Działa zarówno pod Linuksem , jak i Mac OS X. Zawiera interpreter Scheme, kompilator języka Extempore i harmonogram. Nie ma powiązań z Apple , ale środowisko może współpracować z bibliotekami dynamicznymi.

Zobacz też


Artykuły akademickie

Innych źródeł

Linki zewnętrzne