즉석(프로그래밍 환경)
Impromptu (programming environment)![]() | |
패러다임 | 기능적, 다중 패러다임 |
---|---|
설계자 | 앤드루 소렌센 |
첫 등장 | 2005; | 전(
안정적 해제 | 2.5 |
타이핑 규율 | 동적 & 정적 |
OS | 맥 OS X |
웹사이트 | impromptu.moso.com |
영향을 받은 | |
영향받은 | |
익스템포어 |
즉흥은 라이브 코딩을 위한 맥 OS X 프로그래밍 환경이다.즉흥적인 것은 리스프 언어의 일원인 Scheme 언어를 중심으로 만들어진다.그것의 핵심의 소스 코드는 Extempore 프로젝트로 개방되었다.
설명
환경은 프로그램을 런타임에 변경할 수 있도록 하므로 변수와 기능이 재정의되고 변경사항이 즉시 효력을 발휘한다.프로그래머는 또한 노트와 그래픽 오브젝트와 같은 데이터 이벤트뿐만 아니라 향후 실행을 위한 코드를 만들고 스케줄링할 수 있다.이벤트가 예약되면 실행이 계속된다.루핑은 "임시 재귀"라는 숙어를 사용하여 수행되는데, 이 숙어는 비동기적으로 스스로 미래의 호출을 최종 동작으로 스케줄링하여 작동한다.
이 라이브러리는 오디오 합성을 위해 오디오 유닛과 통신할 수 있으며, 비디오 구성을 위해 QuickTime, Quartz, Core Image, OpenGL과 같은 그래픽 레이어와 통신할 수 있다.목표-C로 작성된 코드는 편집자로부터 호출할 수 있으며, 목표-C 프레임워크는 계획 해석자에게 호출을 수행할 수 있다.
즉흥적인 계획 통역은 처음에 TinyScheme 1.35 베이스라인에서 제작되었지만, 라이브 코딩 상황에 더 잘 맞도록 그 이후로 상당히 수정되었다.실시간 쓰레기 수거기, 목표-C 통합 등이 추가됐다.또한 Extempore Language라고 불리는 정적으로 타이핑된 새로운 언어가 시스템에 통합되었다.이 언어는 구문론적으로 체계와 유사하지만 의미론적으로 C에 더 가깝고, 실시간 사운드 합성 및 기타 계산적으로 무거운 작업을 위해 설계되었다.형식 추론을 제공하고 LLVM에 의해 기계 언어로 컴파일된다.
샘플 성능
Keith의 연구(Study in Keith)는 Andrew Sornsen의 즉흥적인 라이브 코딩 공연이다.처음 2분(1:56)은 침묵하고, 연주자는 작품의 소개를 제작할 프로그램을 작성한다.그때부터 그는 즉석에서 코드를 수정하여 구성을 진화시킨다.
익스템포어
즉흥성의 핵심은 BSD 스타일 라이센스에 따라 Extempore로 출시되었다.그것은 Linux와 Mac OS X 둘 다에서 운영된다.여기에는 Scheme 인터프리터, Extempore Language 컴파일러 및 스케줄러가 포함된다.애플 라이브러리에 대한 바인딩은 없지만 환경은 동적 라이브러리와 상호 작용할 수 있다.
참고 항목
참조
학술논문
- Sornsen, A(2010) "네트워크 라이브코딩 성능을 위한 분산 메모리" 국제 컴퓨터 음악 컨퍼런스 2010, 뉴욕
- 소렌센, A & Brown, A(2008) "게르만 교향곡 전통의 관현악 창조를 위한 연산 모델: 호주 컴퓨터 음악 컨퍼런스 2008 시드니에서 개최되는 진행률 보고서" 논문
- Sornsen, A & Brown, A(2007) "Aa-cell in Practice: 코펜하겐에서 열린 2007 국제 컴퓨터 음악 콘퍼런스에 소개된 "뮤지컬 라이브 코딩 접근법"
- 소렌센, A. (2005) "환상곡: 구성 및 성능을 위한 대화형 프로그래밍 환경"" 2005년 호주 컴퓨터 음악 컨퍼런스 브리즈번: ACMA, 페이지 149–153에 제시된 논문. (참고:논의된 즉석 버전은 더 이상 사용되지 않음
- 소렌센, A. "ICR - 즉석 컴파일러 런타임"
- Tor Magnusson, "실시간 코더의 고백", 국제 컴퓨터 음악 회의, 2011.
기타 출처
- Peter Kirn, Create Digital Music, 2011년 "Think and Performance, Live Coding Music, 누구에게나 설명 - 정말로"
- Mitchell Whitelaw, "From Scratch - Andrew Sornsen과의 대화", 2007년