LocalazyLocalazy
Actor je souběžný programovací jazyk pro předávání zpráv, který se používá k programování systémů s mnoha aktéry, jako jsou videohry nebo distribuované systémy. Actor je založen na Actor modelu, matematickém modelu souběžných výpočtů. Actor vytvořili Hugh Smith a David Ungar v roce 1986. Byl inspirován programovacím jazykem Smalltalk, který Smith a Ungar používali na počátku 80. let. Actor je staticky typovaný, objektově orientovaný jazyk. Má malou sadu základních datových typů a operátorů a jednoduchý, výkonný objektový model. Programy Actor se skládají z aktérů, což jsou objekty, které spolu komunikují odesíláním a přijímáním zpráv. Aktér může poslat zprávu jinému aktérovi pomocí operátoru ! (bang). Například následující kód odešle zprávu od aktéra A aktérovi B: A ! B Když aktér obdrží zprávu, může odpovědět provedením kódu. Kód, který aktér provede v reakci na zprávu, se nazývá chování. Aktéři mohou také vytvářet nové aktéry. Když aktér vytvoří nového aktéra, stane se jeho rodičem. Vztah rodič-dítě mezi aktéry se nazývá hierarchie. Aktéry lze uspořádat do hierarchií a vytvořit tak složité systémy. Například videohra může mít hierarchii aktérů, kteří představují herní svět, hráče, nepřátelské postavy a objekty ve hře. Klíčovou vlastností Actoru je podpora souběžného programování. Souběžné programování je styl programování, při kterém se provádí více úloh současně. V Actoru je souběžného programování dosaženo pomocí předávání zpráv pro komunikaci mezi aktéry. Předávání zpráv je forma meziprocesové komunikace (IPC), při níž se zprávy posílají mezi procesy. V Actoru se ke komunikaci mezi aktéry používá předávání zpráv. Předávání zpráv má několik výhod oproti jiným formám IPC, jako je sdílená paměť nebo zámky. Za prvé, předávání zpráv je asynchronní, což znamená, že odesílatel a příjemce zprávy nemusí být synchronizováni. Za druhé, předávání zpráv není blokovací, což znamená, že odesílatel nemusí čekat na zpracování zprávy příjemcem, než bude pokračovat. Za třetí, předávání zpráv je škálovatelné, což znamená, že může být použito ke komunikaci mezi velkým počtem procesů. za čtvrté, předávání zpráv je odolné proti chybám, což znamená, že může pokračovat v práci i v případě selhání jednoho nebo více procesů. Actor má také podporu pro distribuované programování. Při distribuovaném programování je program rozdělen na více částí, které běží na různých počítačích. Ke komunikaci mezi těmito částmi lze použít mechanismus předávání zpráv Actoru. Actor je výkonný programovací jazyk, který je vhodný pro programování složitých systémů. Díky podpoře souběžného a distribuovaného programování je ideální volbou pro vývoj rozsáhlých aplikací.