Кіріспе
Актерлік модельдің денотациялық семантикасы – Актерлерге арналған денотациялық домен теориясының пәні. Осы пәннің тарихи дамуы [Hewitt 2008b]-де айтылған.
Бағдарламалау тілдеріндегі композициондық
Бағдарламалау тілдерінің денотациялық семантикасының маңызды аспектісі – композициялылық, яғни бағдарламаның денотациясы оның құрамына кіретін бөліктерінің денотациялары арқылы құрастырылады. Мысалы, "" өрнегін қарастырайық. Бұл жағдайда композициялылық – "" үшін оның құрамындағы және бөліктерінің мағыналары тұрғысынан мағына беру болып табылады. Актер моделі бағдарламалардың композициялылығын талдаудың қазіргі заманғы және өте жалпы әдісін ұсынады. Скотт және Страчи [1971] бағдарламалау тілдерінің семантикасын лямбда-есептеудің семантикасына келтіруді және осылайша лямбда-есептеудің денотациялық семантикасын мұра етуді ұсынды. Дегенмен, бір уақытта есептеуді лямбда-калькульда жүзеге асыру мүмкін емес екені анықталды (бір уақытта есептеудегі белгісіздік туралы қараңыз). Осылайша, бір уақытта жұмыс істейтін бағдарламалау тілдері үшін модульдік денотациялық семантиканы қалай ұсыну мәселесі туындады. Бұл мәселенің бір шешімі – Актер моделін есептеу үшін пайдалану. Актер моделінде бағдарламалар – бұл Актерлер, олар ортаның мекенжайымен (төменде түсіндіріледі) бірге хабарлар жіберіледі, соның арқасында бағдарламалар өз денотациялық семантикасын Актер моделінің денотациялық семантикасынан мұра етеді (бұл идея Хьюитт [2006] еңбегінде жарияланған).
The Actor model provides a modern and very general way the compositionality of programs can be analyzed. Scott and Strachey [1971] proposed that the semantics of programming languages be reduced to the semantics of the lambda calculus and thus inherit the denotational semantics of the lambda calculus. However, it turned out that concurrent computation could not be implemented in the lambda calculus (see Indeterminacy in concurrent computation). Thus there arose the problem of how to provide modular denotational semantics for concurrent programming languages. One solution to this problem is to use the Actor model of computation. In Actor model, programs are Actors that are sent messages with the address of an environment (explained below) so that programs inherit their denotational semantics from the denotational semantics of the Actor model (an idea published in Hewitt [2006]).
Арифметикалық өрнектер
Басқа мысал ретінде "" өрнегінің Актерін қарастырайық, оның басқа екі актердің (процестердің) мекенжайлары бар. Ал құрама өрнек Актер (процесс) қоршаған орта Актері E және клиент C мекенжайлары бар хабарламаны алғанда, ол E ортасына және оған хабарлама жібереді, ал C-ге жаңа Актерді (процесс) C0 жібереді. C0 екі мән N1 және N2-ні алғаннан кейін, C-ге N1 N2 мәнін жібереді. Осылайша, процесс калькуляторы және Актер моделі үшін денотациялық семантика "" үшін денотациялық семантиканы қамтамасыз етеді, оны және семантикасы тұрғысынан түсіндіруге болады.
Басқа бағдарламалау тілдері құралымдары
Жоғарыда ұсынылған денотациялық композициялық семантика өте жалпы және функционалдық, императивті, параллель, логикалық және т.б. бағдарламалар үшін қолданылуы мүмкін (қараңыз [Hewitt 2008a]). Мысалы, ол кідірістер мен болашақ мәндік конструкциялар сияқты, басқа тәсілдермен ресмилендіру қиын конструкцияларға белгілеу семантикасын оңай береді.
Клингер моделі
Докторлық диссертациясында Уилл Клингер Актер моделі үшін алғашқы денотациялық семантиканы жасады.