Impromptu (programmeringsmiljö)

Improviserad
Splash smaller.jpg
Paradigm Funktionellt , multiparadigm
Designad av Andrew Sørensen
Dök först upp 2005 ; 18 år sedan ( 2005 )
Stabil frisättning
2.5
Maskinskrivningsdisciplin Dynamisk & statisk
OS Mac OS X
Hemsida improviserade .moso .com .au
Påverkad av
Influerade
Extempore

Impromptu är en Mac OS X- programmeringsmiljö för live-kodning . Impromptu är uppbyggt kring Scheme- språket, som är en medlem av Lisp -familjen av språk. Källkoden för dess kärna har öppnats som Extempore-projektet .

Beskrivning

Miljön tillåter att göra ändringar i ett program vid körning , så variabler och funktioner kan omdefinieras och ändringarna träder i kraft omedelbart. En programmerare kan också skapa och schemalägga kod för framtida exekvering, såväl som datahändelser som anteckningar och grafikobjekt. När en händelse är schemalagd fortsätter exekveringen. Looping utförs genom att använda ett idiom som kallas "temporal rekursion" som fungerar genom att en funktion asynkront schemalägger ett framtida anrop till sig själv som sin slutliga åtgärd.

Biblioteket tillåter kommunikation med ljudenheter för ljudsyntes och med grafiklager som QuickTime , Quartz , Core Image , OpenGL för videokomposition . Kod skriven i Objective-C kan anropas från editorn, och även Objective-C-ramverk kan utföra anrop till Scheme-tolken.

Impromptus Scheme-tolk byggdes från början från TinyScheme 1.35-baslinjen, men den har modifierats avsevärt sedan dess för att bättre passa livekodningskontexten. En sopsamlare i realtid och Objective-C- integration lades till. Dessutom har ett nytt statiskt skrivet språk som kallas Extempore Language integrerats i systemet. Det här språket är syntaktiskt Scheme-liknande, men semantiskt närmare C, och är designat för ljudsyntes i realtid och andra beräkningstunga uppgifter. Det ger typinferens och kompileras till maskinspråk av LLVM .

Exempel prestanda

A Study in Keith är ett live-kodningsframträdande i Impromptu av Andrew Sorensen. De första två minuterna (1:56) är tysta, medan artisten skriver programmet som ska producera inledningen av stycket. Från och med då modifierar han koden i farten för att utveckla kompositionen.

Extempore

Kärnan i Impromptu har släppts som Extempore under en BSD-licens. Det körs under både Linux och Mac OS X. Det inkluderar Scheme-tolken, Extempore Language-kompilatorn och schemaläggaren. Bindningarna till Apples bibliotek saknas, men miljön kan samverka med dynamiska bibliotek.

Se även


Akademiska uppsatser

Andra källor

externa länkar