2014-11-22 2 views
0

내 아이디어를 명확하게 설명 할 수 있는지는 잘 모르겠지만 시도해 보겠습니다.실행 순서에 프로그래밍 언어 기능이 있음

프로그래밍 언어가 코드의 실행 순서를 결정합니다. 프로 시저 프로그래밍 언어 코드의 실행에서 시작 "주()"및 기능이 계속적으로 호출 다음 결정으로

  1. 평원 예는 C이다.

  2. 예외 처리 ("try ... catch")는 코드 실행이 "일반"시퀀스와 "예외"시퀀스를 가지고 있다는 또 다른 기능입니다. 예외가 발생하면 코드는 롤업되어 여전히 호출 관계를 따르지 만 정상 코드는 건너 뜁니다.

  3. TSR, win API, MFC, VBA 등 코드가 여러 개의 진입 점을 가질 수있는 다른 스타일을 정의하십시오. 실행은 이 시스템 메시지 또는 사용자 상호 작용에서 트리거 될 수 있습니다. 클래스 디자인은 오브젝트가 범위를 벗어 났을 때 암시 적으로 소멸자를 만들 것입니다. 이것은 "다중 진입 점"의 또 다른 예입니다.

  4. "게으른"기능이 일부 필요하므로 일부 코드 실행이 필요할 때까지 연기 할 수 있습니다. 예를 들어, C++ istream_iterators는 lazy evaluation을 사용할 수 있습니다.

  5. F #의 "async"와 같은 비동기 실행을 허용하는 언어 기능이 있습니다.

제 질문 사항은 이러한 기능 외에도 코드 실행 순서를 변경하기 위해 패턴/기술 코딩이 아닌 다른 언어 기능이 C++ 또는 다른 언어에 있습니까?

+0

왜 당신의 목록에 게으른 것을 포함 시켰습니까? 이것은 하스켈과 같이 진정으로 게으른 언어에 대해서 말하지 않는 한 코딩 패턴 일뿐입니다. – svick

+0

@svick이 동의합니다. 스레딩에서 WaitOne이 더 좋은 예입니다. – athos

답변

0

이후의 기능은 특정 언어가 준수하는 프로그래밍 패러다임에 의해 부분적으로 결정될 수 있습니다. 이에 대한 좋은 요약은 다음에서 찾을 수 있습니다. http://www.info.ucl.ac.be/~pvr/paradigms.html

일부 하위 레벨 기능 (특히 목록의 항목 2, 예외 처리)은 일반적으로 "제어 흐름"이라는 용어로 논의됩니다. 그것의 위키 피 디아 페이지 (http://en.wikipedia.org/wiki/Control_flow)에 따르면, 그것은 필수적이고 기능적인 패러다임으로 제한됩니다.