Поддерживать
www.wikidata.ru-ru.nina.az
U etogo termina sushestvuyut i drugie znacheniya sm Oz Oz uchebnyj yazyk programmirovaniya vysokogo urovnya v kotorom sovmesheny funkcionalnaya procedurnaya deklarativnaya semantiki OzSemantika funkcionalnyj procedurnyj deklarativnyj obektno orientirovannyj vychisleniya s ogranicheniyami N modeli parallelnye vychisleniyaKlass yazyka yazyk programmirovaniya yazyk programmirovaniya v ogranicheniyah vd i multiparadigmalnyjTip ispolneniya kompiliruemyjPoyavilsya v 1991Avtor amp his studentsVypusk Oz 1 4 0 Mozart 2 0 1 5 sentyabrya 2018 5 let nazad 2018 09 05 Osnovnye realizacii MozartIspytal vliyanie PrologPovliyal na AliceLicenziya licenziya MITSajt mozart github ioIstoriya razrabotkiRazrabotku yazyka programmirovaniya Oz nachal v 1991 godu professor Gert Smolka so svoimi studentami iz laboratorii sistem programmirovaniya v Belgii V 1996 godu k processu razrabotki podklyuchilis Seif Haridi i Peter Van Roy iz Shvedskogo instituta informatiki Swedish Institute of Computer Science kotorye ispolzovali etot yazyk v svoyom klassicheskom uchebnike Concepts Techniques and Models of Computer Programming S 1999 do 2005 goda yazyk razvivalsya pod rukovodstvom mezhdunarodnoj nauchno issledovatelskoj gruppy Mozart Consortium sostoyashej iz tryoh universitetov Saarskij universitet Shvedskij institut informatiki Swedish Institute of Computer Science i Vysokokachestvennaya otkrytaya realizaciya yazyka Oz Mozart vklyuchaet IDE na osnove rasshireniya redaktora Emacs kompilyator otladchik profajler i drugie utility Upravlenie razrabotkoj sistemy programmirovaniya Mozart v 2005 godu bylo peredano gruppe razrabotchikov Mozart Board s celyu privlecheniya bolee shirokogo kruga issledovatelej Eta sistema vypushena gruppoj Mozart Consortium pod svobodnoj licenziej i vposledstvii perenesena portirovana na bolshinstvo populyarnyh operacionnyh sistem v tom chisle Unix FreeBSD Linux Microsoft Windows i Mac OS X Osobennosti yazykaYazyk programmirovaniya Oz vklyuchaet v sebya bolshinstvo koncepcij populyarnyh paradigm programmirovaniya v tom chisle logicheskogo funkcionalnogo prichyom kak lenivye tak i energichnye vychisleniya imperativnogo obektno orientirovannogo programmirovaniya s ogranicheniyami raspredelyonnogo i parallelnogo programmirovaniya S odnoj storony Oz obladaet prostoj formalnoj semantikoj a s drugoj dlya nego sozdana effektivnaya programmnaya realizaciya K osnovnym preimushestvam etogo yazyka otnositsya podderzhka multiparadigmennogo programmirovaniya programmirovaniya v ogranicheniyah a takzhe raspredelyonnoe programmirovanie Tak na urovne yazykovyh konstrukcij podderzhivaetsya prostoe i estestvennoe rasparallelivanie i raspredelenie vychislenij po seti chto pozvolyaet legko sozdavat otkazoustojchivye prilozheniya Dlya realizacii programmirovaniya v ogranicheniyah v yazyke Oz vvoditsya koncepciya vychislitelnyh prostranstv computation spaces v kotoroj proishodit poisk resheniya Eto pozvolyaet reshat zadachi matematicheskogo programmirovaniya i v chastnosti zadachi diskretnoj optimizacii Obzor yazykaStruktury dannyh Yadro yazyka obrazovano neskolkimi osnovnymi strukturami dannyh no mozhet byt rasshireno s pomoshyu tak nazyvaemogo sintaksicheskogo sahara Osnovnye struktury dannyh Chisla celye ili s plavayushej zapyatoj Zapisi dlya gruppirovki elementov dannyh circle x 0 y 1 radius 3 color blue style dots Spiski prostye linejnye struktury 2 4 6 8 nil 2 4 6 8 nil sintaksicheskij sahar 2 4 6 8 nil eshyo bolee kratkaya zapis 2 4 6 8 effektivnoe primenenie sintaksicheskogo sahara dlya realizacii lakonichnogo sintaksisa Eti znacheniya yavlyayutsya konstantnymi sushnostyami pervogo roda first class tipizaciya pri etom dinamicheskaya Funkcii Funkcii yavlyayutsya sushnostyami pervogo roda chto pozvolyaet primenyat paradigmu funkcionalnogo programmirovaniya fun Fact N faktorial if N lt 0 then 1 else N Fact N 1 end end fun Comb N K kolichestvo sochetanij Fact N div Fact K Fact N K celye chisla mogut imet skol ugodno bolshoe znachenie end fun SumList List summa elementov spiska case List of nil then 0 H T then H SumList T sopostavlenie s obrazcom dlya spiska end end Potokovye peremennye i deklarativnyj parallelizm Esli programma obnaruzhivaet nesvyazannuyu peremennuyu ona ozhidaet do teh por poka peremennoj budet prisvoeno znachenie thread Z X Y ozhidaet do teh por poka peremennye X i Y ne poluchat znacheniya Browse Z otobrazhaet znachenie Z end thread X 40 end thread Y 2 end Izmenit znachenie potokovoj peremennoj s kotoroj svyazano znachenie nevozmozhno X 1 X 2 error Potokovye peremennye pozvolyaet legko sozdavat agentov kotorye vypolnyayutsya v parallelnyh potokah fun Ints N Max if N Max then nil else Delay 1000 N Ints N 1 Max end end fun Sum S Stream case Stream of nil then S H T then S Sum H S T end end local X Y in thread X Ints 0 1000 end thread Y Sum 0 X end Browse Y end Blagodarya tomu kak rabotayut potokovye peremennye v lyubom meste programmy mozhno ispolzovat potoki vychisleniya kotorye garantirovanno vernut odin i tot zhe rezultat chto delaet parallelnoe programmirovanie prostym Vmeste s tem potoki rashoduyut ochen malo sistemnyh resursov kak i v Erlange odnovremenno mozhno zapustit 100 000 potokov Primery programm na yazyke OzResheto Eratosfena V dannom primere vychislyaetsya potok prostyh chisel s ispolzovaniem algoritma resheto Eratosfena Dlya etogo rekursivno sozdayutsya parallelnye potoki kotorye otseivayut sostavnye chisla fun Sieve Xs case Xs of nil then nil X Xr then Ys in thread Ys Filter Xr fun Y Y mod X 0 end end X Sieve Ys end end Lenivye vychisleniya Po umolchaniyu Oz ispolzuet model energichnyh vychislenij no takzhe podderzhivaet i tak nazyvaemye lenivye vychisleniya fun lazy Fact N if N lt 0 then 1 else N Fact N 1 end end local X Y in X Fact 100 Y X 1 poskolku trebuetsya znachenie X ono vychislyaetsya imenno v etot moment end Peredacha soobshenij Model deklarativnogo parallelizma mozhet byt rasshirena s ispolzovaniem mehanizma peredachi soobshenij declare local Stream Port in Port NewPort Stream Send Port 1 Stream is now 1 indicates an unbound and unnamed variable Send Port 2 Stream is now 1 2 Send Port n Stream is now 1 2 n end Sozdanie asinhronnyh agentov realizuetsya s pomoshyu potokov i portov fun NewAgent Init Fun Msg Out in thread FoldL Msg Fun Init Out end NewPort Msg end Sostoyaniya i obekty Model deklarativnogo parallelizma mozhet byt rasshirena s celyu podderzhki koncepcii sostoyaniya i obektno orientirovannogo programmirovaniya dlya etogo neobhodimo sozdat strukturu dannyh Cells znachenie kotoroj mozhet byt izmeneno local A X in A NewCell 0 A 1 changes the value of A to 1 X A is used to access the value of A end Blagodarya takomu neznachitelnomu rasshireniyu semantiki mozhno ispolzovat vsyu mosh obektno orientirovannogo programmirovaniya class Counter attr val meth init Value val Value end meth browse Browse val end meth inc Value val val Value end end local C in C New Counter init 0 C inc 6 C browse end Primer programmy na yazyke Oz reshayushej rebus Uslovie FUT BOL IGRA Gde I 0 i vse razlichnye bukvy oznachayut razlichnye cifry Reshenie local Fut Res in proc Fut C F U T B O L G R A C in C 0 9 FD distinct C F 0 B 0 100 F 10 U T 100 B 10 O L 100 G 10 R A FD distribute ff C end SearchAll Fut Res Browse Res end pokazhet vse resheniya dannogo rebusa v vide tablicy Sm takzheAlice yazyk programmirovaniya MozartPrimechaniyaConcepts Techniques and Models of Computer Programming neopr Data obrasheniya 30 noyabrya 2010 26 avgusta 2014 goda neopr Data obrasheniya 30 noyabrya 2010 Arhivirovano iz originala 24 fevralya 2015 goda SsylkiThe Mozart Programming System Strasheela Elektronnyj kompozitor napisannyj na Oz Mozart Tutorial of Oz Uchebnik yazyka Oz
Вершина