2013-07-03 2 views
0

C 및 C++에 대한 "최근"변경 사항으로 인해 Java 및 C#과 유사한 메모리 모델이 추가되어 Ada83 또는 Ada95 inbuilt 동시성 지원이 메모리 모델을 정의했는지 궁금합니다.Ada83 또는 Ada95가 멀티 태스킹을 지원하는 메모리 모델을 정의 했습니까?

Ada가 메모리 모델을 정의했는지 여부에 대해 언급 한 사람이 있습니까?

보너스 질문 : Ada83이 공유 상태 동시성에 대한 INBUILT 지원을 제공하는 최초의 일반 프로그래밍 언어였습니까?

답변

3

당신이 묻고있는 의미에서 가장 가까운 메모리 모델은 ARM의 Dynamic Semantics 섹션이라고 생각합니다.

에이다 83은 pragma Shared이었다.

Ada 95 replaced this with pragmas Atomic, Volatile, Atomic_Components 및 Volatile_Components; Ada 2005는 (수정에서) pragma Independent 및 Independent_Components (즉, 참조 된 객체 또는 해당 구성 요소 각각이 독립적으로 주소 지정 가능)와 동일합니다. 에이다 2012

좋은하지만 즉시 관련 이유로, aspects과 프라그 마를 대체 태스킹 & 공유 메모리에 관한

Imported_Variable : Integer with 
    Import, Convention => C, External_Name => "exported_variable", Volatile; 
2

, 난 당신이 Protected Types보고해야한다고 생각합니다. 동시성을 위해 이것은 다른 스레드 (작업)가 명시 적 뮤텍스를 필요로하지 않고 자원을 공유 할 수있게합니다.