의도적 프로그래밍

의도적 프로그래밍(Intentional programming)은 컴퓨터 프로그래밍에서 찰스 시모니가 개발한 프로그래밍 패러다임으로, 프로그래머(또는 사용자)가 작업을 구상할 때 염두에 둔 정확한 의도를 소프트웨어 소스 코드에 인코딩한다. 프로그래머가 생각하는 적절한 추상화 수준을 사용하면 컴퓨터 프로그램을 만들고 유지 관리하는 것이 더 쉬워진다. 의도에 대한 관심과 그 작동 방식을 분리함으로써 소프트웨어는 더욱 모듈화되고 재사용 가능한 소프트웨어 코드를 허용한다.

의도적 프로그래밍은 패러다임을 개발하고 패러다임을 시연한 IP(의도적 프로그래밍용)라는 통합 개발 환경(IDE)을 구축한 마이크로소프트 리서치의 팀을 이끌었던 전 마이크로소프트 수석 설계자 찰스 시모니가 개발했다. 마이크로소프트는 2000년대 초에 자바 채택에 대응하기 위해 C 샤프 및 닷넷을 출시했기 때문에 의도적 프로그래밍 패러다임을 제품화하지 않기로 결정했다."Simonyi explains, 'It was impractical, when Microsoft was making tremendous strides with .Net in the near term, to somehow send somebody out from the same organization who says, "This is not how you should do things--what if you did things in this other, more disruptive way?'" (Quote from "Anything You Can Do, I Can Do Meta", Tuesday, January 9, 2007, Scott Rosenberg, Technology Review. ) 찰스 시모니는 마이크로소프트의 승인을 받아 자신의 아이디어를 마이크로소프트에서 가져와 직접 상용화하기로 결정했다. 그는 이를 추구하기 위해 인탠셔널 소프트웨어라는 회사를 설립했다. 마이크로소프트는 시모니가 마이크로소프트에 재직하는 동안 소스 코드 없이 취득한 의도적 프로그래밍 특허를 인탠셔널 소프트웨어에 라이선스를 부여했다.

마이크로소프트 리서치에서 개발된 의도적 프로그래밍에 대한 개요는 생성적 프로그래밍: 방법, 도구 및 응용 프로그램 책의 11장에 나와 있다.Generative Programming: Methods, Tools, and Applications, by Krzysztof Czarnecki and Ulrich Eisenecker, Addison-Wesley, Reading, MA, USA, June 2000.

 같이 보기 
 자동 프로그래밍
 객체 지향 데이터베이스

 각주 

 외부 링크 
 Intentional Software - Charles Simonyi's company
 The Death Of Computer Languages, The Birth of Intentional Programming, a technical report by Charles Simonyi (1995)
 Intentional Programming - Innovation in the Legacy Age, a talk by Charles Simonyi (1996)
 Edge.org interview with Charles Simonyi (interviewer: John Brockman)
 Language Workbenches: The Killer-App for Domain Specific Languages? - Martin Fowler's article on the general class of tools that Intentional Programming is an example of.
 "Anything You Can Do, I Can Do Meta"  Tuesday, January 9, 2007, Scott Rosenberg, Technology Review
  Awaiting the Day When Everyone Writes Software, The New York Times, 28 January 2007
 Is programming a form of encryption?, by Charles Simonyi (2005)
 Appropriate Levels of Abstraction, by Charles Simonyi (2005)
 The information contents of programs, by Charles Simonyi (2005)
 Feature X Considered Harmful, by Charles Simonyi (2005)
 Notations and Programming Languages, by Charles Simonyi (2005)
 Personal Observations from a Developer, by Mark Edel (2005)
 Microsoft Research's educational video introducing their Intentional Programming system (ASF format, circa 1998, 20 megabytes)

분류:프로그래밍 패러다임