www.wikidata.uk-ua.nina.az
U Vikipediyi ye statti pro inshi znachennya cogo termina Mova znachennya Mo va programuva nnya angl Programming language ce shtuchna mova stvorena dlya peredachi komand mashinam zokrema komp yuteram Movi programuvannya vikoristovuyutsya dlya stvorennya program yaki kontrolyuyut povedinku mashin ta dlya zapisu algoritmiv Suvorishe viznachennya mova programuvannya ce sistema poznachen dlya opisu algoritmiv i struktur danih 1 pevna shtuchna formalna sistema zasobami yakoyi mozhna virazhati algoritmi 2 Movu programuvannya viznachaye nabir leksichnih sintaksichnih i semantichnih pravil sho zadayut zovnishnij viglyad programi ta diyi yaki vikonuye vikonavec komp yuter pid yiyi upravlinnyam dzherelo Z chasu stvorennya pershih programovanih mashin bulo stvoreno ponad dvi z polovinoyu tisyachi mov programuvannya 3 Shoroku do nih dodayutsya novi Deyakimi movami vmiye koristuvatis tilki nevelike chislo yihnih rozrobnikiv inshi stayut vidomi miljonam lyudej Profesijni programisti zazvichaj zastosovuyut u svoyij roboti dekilka mov programuvannya Zmist 1 Oznachennya 2 Istoriya 3 Elementi 3 1 Sintaksis 3 2 Semantika 3 2 1 Statichna semantika 3 2 2 Dinamichna semantika 3 3 Tipi danih 4 Klasifikaciya mov programuvannya 4 1 Sposobi realizaciyi mov 4 2 Proceduri ta funkciyi 4 3 Ob yektno oriyentovane programuvannya 4 4 Semantika mov programuvannya 5 Movi programuvannya nizkogo rivnya 5 1 Perevagi 5 2 Vadi 6 Movi programuvannya visokogo rivnya 7 Pokolinnya mov programuvannya 8 Div takozh 9 Primitki 10 Literatura 11 PosilannyaOznachennya RedaguvatiMova programuvannya ce notaciya dlya zapisu program yaki ye specifikaciyami yakogos obchislennya abo algoritmu 4 Istoriya RedaguvatiDokladnishe Istoriya mov programuvannya Pidruchniki mov programuvannyaPershi movi programuvannya z yavilisya zadovgo do poyavi pershih komp yuteriv She v XIX stolitti isnuvali programovani tkacki verstati ta pianino progravachi sposib programuvannya yakih nagaduye tak zvani predmetno oriyentovani movi programuvannya Na pochatku XX stolittya pochinayut vikoristovuvati perfokarti ta mehanichnu obrobku danih U 1930 1940 rr vinikaye lyambda chislennya ta mashina Tyuringa yaki zastosovuvali matematichnu abstrakciyu dlya opisu algoritmiv Lyambda chislennya zgodom zdijsnilo vpliv na proyektuvannya mov programuvannya 5 U 1940 rokah stvoryuyutsya pershi elektrichni dvijkovi komp yuteri Vvazhayetsya sho pershu movu programuvannya visokogo rivnya Plankalkyul nim Plankalkul rozrobiv nimec Konrad Cuze v period 1943 1945 rokiv ale v toj chas vona ne bula realizovana i neyu ne zacikavilisya Realizaciyeyu movi zajnyalisya i zdijsnili yiyi lishe v 1998 2000 rokah 6 Naprikinci 1940 h pochatku 1950 h rokiv zastosovuvali interpretovani sistemi koduvannya koli pevni komandi movi programuvannya koduvali chislami yaki vzhe interpretuvalisya mashinnim kodom Ci sistemi nazivalisya avtomatichnim programuvannyam i buli prostishimi dlya programuvannya nizh mashinni kodi ale mogli mati znachno menshu do 50 raziv shvidkodiyu cherez sho perevagu chasto nadavali mashinnim kodam Do takih sistem nalezhali Short Code dlya BINAC 1949 i UNIVAC I 1952 Speedcoding en dlya IBM 701 rozroblena Dzhonom Bekusom u 1954 roci Pershoyu bagatokonceptualnoyu imperativnoyu ta deklarativnoyu movoyu programuvannya visokogo rivnya bula Adresna mova programuvannya realizovana 1955 roku na EOM Kiyiv Mova maye oposeredkovanu adresaciyu vishih rangiv vkazivniki ye analogom V EOM Kiyiv aparatno bula realizovana shtrih operaciya analogom yakoyi ye rozimenuvannya vkazivnikiv Operaciya bagatorazovogo rozimenuvannya vkazivnikiv Multiple indirection bula realizovana grupovimi operaciyami modernizaciyi adres zadlya priskorennya obrobki derevopodibnih formativ Abstraktni tipi danih ye chastkovim vipadkom oskilki derevopodibni formati pripuskayut nayavnist u vuzlah dereva procedur obrobki danih yak v OOP Adresna mova programuvannya maye vicherpni zasobi deklarativnogo programuvannya Do najpotuzhnishogo deklarativnogo zasobu nalezhit minus shtrih operaciya yaka ye obernenoyu do rozimenuvannya vkazivnika Vikoristannya minus shtrih operaciyi nagaduye vikoristannya pervinnih i zovnishnih klyuchiv v relyacijnih bazah danih po zadanomu pervinnomu klyuchu viznachiti misce roztashuvannya adresi v inshij tablici zovnishni klyuchi yakih zbigayutsya z zadanim pervinnim klyuchem 7 Pershoyu shirokovzhivanoyu kompilovanoyu movoyu stav rozroblenij grupoyu Dzhona Bekusa Fortran anonsovanij 1954 roku ta vipushenij 1957 roku dlya IBM 704 Osnovnim priznachennyam Fortranu buli shvidki naukovi obchislennya ogoloshuvalosya sho shvidkodiya zgenerovanogo kompilyatorom kodu majzhe ne vidriznyatimetsya vid napisanogo vruchnu mashinnogo kodu Uzhe u kvitni 1958 roku blizko polovini program dlya IBM 704 buli napisani na Fortrani Vipushenij 1958 roku Fortran II dozvolyav nezalezhnu kompilyaciyu pidprogram sho davalo zmogu stvoryuvati bilshi programi oskilki cherez nizku nadijnist IBM 704 ne mozhna bulo skompilyuvati bez zboyiv veliku programu ponad 300 400 ryadkiv odrazu Rozroblenij u 1960 1962 rokah Fortran IV buv odniyeyu z najposhirenishih mov togo chasu i lishavsya standartnoyu versiyeyu Fortranu do poyavi 1978 roku Fortranu 77 1958 roku v MIT rozrobili LISP pershu funkcijnu movu yaka ponad chvert stolittya dominuvala u programuvanni zadach shtuchnogo intelektu Naprikinci 1950 h rokiv pochali rozroblyati rizni movi programuvannya 1958 roku dekilka znachnih grup komp yuternih koristuvachiv u SShA vklyuchayuchi SHARE grupu naukovciv koristuvachiv IBM i USE UNIVAC Scientific Exchange grupa naukovciv koristuvachiv UNIVAC zaproponuvali ACM zasnuvati robochu grupu zi stvorennya universalnoyi movi programuvannya Takozh she 1955 roku nimecke Tovaristvo prikladnoyi matematiki j mehaniki GAMM zasnuvalo komitet zi stvorennya universalnoyi movi programuvannya U kinci travnya 1958 roku bulo provedeno zustrich u Cyurihu mizh ACM i GAMM na materialah yakoyi u grudni opublikovano ALGOL 58 Report Na jogo osnovi bulo stvoreno 3 znachni realizaciyi MAD 1961 NELIAC 1963 JOVIAL 1963 Z nih lishe JOVIAL otrimav poshirennya stavshi na chvert stolittya oficijnoyu movoyu programuvannya u Vijskovo morskih silah SShA SHARE ta IBM pochali stvorennya vlasnoyi realizaciyi ALGOL ale pripinili vrahuvavshi vitrati na stvorennya i prosuvannya Fortranu Uprodovzh 1959 roku ALGOL 58 shiroko obgovoryuvavsya bula zaproponovana notaciya dlya opisu sintaksisu mov programuvannya forma Bekusa Naura 1960 roku provedeno chergovu zustrich i opublikovano ALGOL 60 Report ALGOL vplinuv na bagato mov programuvannya i stav standartnoyu movoyu dlya publikaciyi algoritmiv ale cherez ryad prichin ne oderzhav shirokogo rozpovsyudzhennya vin buv zaskladnim i ne bulo realizacij yaki pidtrimuvali jogo povnistyu vidsutnist standartnogo vvedennya vivedennya zumovila poyavu riznih nesumisnih realizacij deyaki neodnoznachnosti opisu movi tak i ne buli rozv yazani Okrim togo shirokogo vzhitku uzhe nabuv Fortran i IBM ne pidtrimala ALGOL 1959 roku bulo provedeno zustrich u Pentagoni dlya stvorennya movi CBL Common Business Language zasnovano komitet z yiyi stvorennya i 1960 roku opublikovano pochatkovu specifikaciyu COBOL 60 yakij nevdovzi stav pershoyu movoyu uhvalenoyu u Ministerstvi oboroni SShA 1968 roku COBOL bulo standartizovano ANSI U 1964 roci bulo stvoreno sproshenu movu BASIC Beginners All purpose Symbolic Instruction Code dlya navchannya programuvannyu studentiv yaki perevazhno specializuvalisya u vilnih mistectvah a ne tehnichnih naukah Todi yak naukovci perevazhno vikoristovuvali Fortran a biznes COBOL 1963 roku v IBM virishili stvoriti universalnu platformu IBM 360 i movu programuvannya U stisli termini do 1965 roku bulo rozrobleno movu PL I yaka poyednuvala mozhlivosti Fortranu ALGOL i COBOL i viyavilas zaskladnoyu hocha i bula u shirokomu vzhitku v 1970 h u naukovih i biznes zadachah takozh yiyi pidmnozhini PL C PL CS vikoristovuvalisya dlya navchannya programuvannyu Na pochatku 1960 h rokiv bulo stvoreno pershi movi iz dinamichnoyu tipizaciyeyu APL i SNOBOL SIMULA 67 bula pershoyu ob yektno oriyentovanoyu movoyu programuvannya 1965 roku Niklaus Virt i Toni Goar zaproponuvali komitetu z rozvitku movi ALGOL svoyu versiyu yaku zgodom nazvali ALGOL W i zastosovuvali dlya navchannya v deyakih universitetah Propoziciya bula vidhilena cherez neznachnu kilkist zmin na korist znachno skladnishogo ALGOL 68 U ALGOL 68 z yavilisya viznachennya struktur danih i dinamichni masivi ALGOL 68 stav pershoyu movoyu iz formalnoyu specifikaciyeyu yaka odnak bula skladnoyu dlya rozuminnya 1971 roku Virt opublikuvav opis movi Pascal yaka u 1970 h stala zagalnovzhivanoyu dlya navchannya studentiv 1972 roku Denis Richi rozrobiv u Bell Labs movu C Todi zh u Marseli stvoreno interpretator movi Prolog pershoyi i najvidomishoyi movi logichnogo programuvannya Alan Kej u Xerox PARC rozrobiv pershu shiroko vzhivanu ob yektno oriyentovanu movu Smalltalk 1973 roku Robin Milner v Edinburzkomu universiteti stvoriv ML 1975 roku v Massachusetskomu tehnologichnomu instituti opisano sproshenij dialekt movi Lisp Scheme 1976 roku vipusheno movu dlya statistichnogo programuvannya S na bazi yakoyi 1993 roku stvoreno R 1977 roku vipusheno Bourne shell i awk 1975 roku Ministerstvo oboroni SShA utvorilo mizhnarodnu grupu dlya stvorennya novoyi movi programuvannya dlya vlasnih potreb konkurs 1979 roku vigrala mova Ada 1981 roku vipusheno dBASE II 1984 roku z metoyu ob yednannya riznih dialektiv Lispu stvoreno Common Lisp Vipusheno MATLAB1985 roku B yarn Straustrup opublikuvav realizaciyu movi C 1986 roku opublikovano movu Objective C i stvoreno Erlang Todi zh Borland i Apple nezalezhno stvorili ob yektno oriyentovane rozshirennya movi Pascal Object Pascal 1987 roku stvoreno Perl 1990 roku opublikovano Standard ML i Haskell 1991 roku stvoreno Visual Basic i opublikovano Python 1992 roku vipusheno Oracle 7 z pidtrimkoyu PL SQL1993 roku stvoreno Lua 1995 roku Sun Microsystems vipustila Java Netscape JavaScript todi zh stvoreno PHP i Ruby 1996 roku stvoreno OCaml 2001 roku stvoreno C 2002 roku stvoreno F 2003 roku stvoreno Scala 2009 roku stvoreno Go 2010 roku stvoreno Kotlin 2010 roku bula oficijno predstavlena mova programuvannya Rust na Mozilla Summit 2010 8 Robotu nad movoyu Grejdon Goar rozpochav she 2006 roku 2012 roku stvoreno Elm 2012 roku stvoreno Elixir 2014 roku na konferenciyi rozrobnikiv WWDC 2014 bulo predstavleno movu Swift 2014 roku prezentovano pershij oficijnij reliz movi programuvannya Crystal 9 Elementi RedaguvatiSintaksis Redaguvati Sintaksis movi programuvannya viznachaye te yak bude viglyadati programa ciyeyu movoyu zokrema yak pishutsya operatori ogoloshennya j inshi movni konstrukciyi 10 Napriklad ogoloshennya masivu V z desyati elementiv u formati cilih chisel u movi S bude viglyadati tak int V 10 Na movi Pascal V array 0 9 of integer Semantika Redaguvati Termin semantika stosuyetsya znachennya movi na vidminu vid yiyi formi sintaksisu Napriklad termin semantika operatora oznachaye diyu yaku vikonuye operator pid chas vikonannya programi Takim chinom semantika movi programuvannya ce sukupnist semantik okremih elementiv dozvolenih sintaksisom movi Statichna semantika Redaguvati Statichna semantika opisuye obmezhennya na strukturu tekstiv movi yaki vazhko abo nemozhlivo viraziti zvichajnimi strukturnimi formalizmami 4 Dlya kompilovanih mov statichna semantika po suti ce pravila yaki mozhut buti perevirenimi na etapi kompilyaciyi Napriklad perevirka togo sho kozhen identifikator zadeklarovanij do togo yak vikoristovuyetsya v movah yaki potrebuyut takih deklaracij abo sho varianti v operatori switch rizni 11 Bagato vazhlivih obmezhen cogo tipu taki yak perevirka vikoristannya identifikatora v pravilnomu konteksti napriklad zaborona dodavannya chisel do funkcij abo sho vikliki pidprograma mayut pravilnu kilkist i tipi argumentiv mozhut buti zabezpechenni viznachennyam yih yak pravil logiki yaka nazivayetsya sistemoyu tipizaciyi Inshi formi statichnogo analizu taki yak analiz potoku danih en takozh mozhut buti chastinoyu statichnoyi semantiki Taki movi programuvannya yak Java ta S mayut yak chastinu svoyeyi statichnoyi semantiki definite assignment analysis en formu analizu potoku danih Dinamichna semantika Redaguvati Dokladnishe Semantika mov programuvannyaKoli dani opisani komp yuter maye otrimati instrukciyi shos robiti z danimi Napriklad semantika mozhe opisuvati strategiyi obchislennya za yakimi otrimuyutsya znachennya viraziv abo sposib yakim instrukciyi viznachayut potik keruvannya Dinamichna semantika movi takozh vidoma yak semantika vikonannya angl execution semantics viznachaye yak i koli rizni konstrukciyi movi povinni zadavati povedinku programi Isnuye bagato sposobiv zadannya semantiki vikonannya Dlya opisu semantiki vikonannya mov yaki chasto zastosovuyutsya na praktici vikoristovuyetsya prirodna mova Velika chastina doslidzhen mov programuvannya stosuyetsya formalnoyi semantiki mov programuvannya Tipi danih Redaguvati Oblast zberigannya danih v aparatnij chastini komp yutera pam yat registri ta zovnishni zapam yatovuvalni pristroyi zazvichaj mayut dovoli prostu strukturu v viglyadi poslidovnosti bitiv zgrupovanih v bajti abo slova Prote v virtualnomu komp yuteri yak pravilo organizovano skladnishim chinom v rizni momenti vikonannya programi vikoristovuyutsya taki formi zberigannya danih yak steki masivi chisla simvolni ryadki ta inshi Odin abo dekilka odnotipnih elementiv danih ob yednanih v odne cile v virtualnomu komp yuteri v pevnij moment vikonannya programi zavedeno nazivati ob yektom danih Pri vikonanni programi isnuye bagato ob yektiv danih riznih tipiv Tip danih ce deyakij klas ob yektiv danih razom z naborom operacij dlya stvorennya i roboti z nim 12 V kozhnij movi programuvannya ye pevnij nabir vbudovanih primitivnih tipiv danih Dodatkovo v movi mozhut buti peredbacheni zasobi sho dozvolyayut programistu viznachati novi tipi danih Klasifikaciya mov programuvannya RedaguvatiMovi klasifikuyut za takimi kriteriyami dzherelo Riven abstrakciyi Movi programuvannya visokogo rivnya operuyut sutnostyami blizhchimi lyudini takimi yak ob yekti zminni funkciyi Movi programuvannya nizhchogo rivnya operuyut sutnostyami blizhchimi mashini bajti adresi instrukciyi Tekst programi movoyu visokogo rivnya zazvichaj nabagato korotshij nizh tekst takoyi samoyi programi movoyu nizkogo rivnya prote programa maye bilshij rozmir Dilyanka zastosuvannya Universalni ta specializovani Specializovani movi tezh buvayut Tyuring povni ta vse zh yih dilyanka zastosuvannya obmezhena yak napriklad u movi shell Pidtrimuvani paradigmi programuvannya Ob yektno oriyentovani logichni funkcijni strukturni Imperativni movi gruntuyutsya na ideyi zminnoyi znachennya yakoyi zminyuyetsya prisvoyennyam Voni nazivayutsya imperativnimi lat imperative nakazovij oskilki skladayutsya iz poslidovnostej komand yaki zvichajno mistyat prisvoyennya zminnih lt code gt lt nazva zminnoyi gt lt viraz gt lt code gt de viraz mozhe posilatisya na znachennya zminnih prisvoyenih poperednimi komandami Sposobi realizaciyi mov Redaguvati Movi programuvannya mozhut buti realizovani yak kompilovani ta interpretovani Programa kompilovanoyu movoyu za dopomogoyu kompilyatora osoblivoyi programi kompilyuyetsya v mashinnij kod nabir instrukcij dlya danogo tipu procesora sho zapisuyetsya u ob yektnij modul Z odnogo abo kilkoh ob yektnih fajliv komponuvalnik formuye vikonuvanij fajl yakij mozhe buti zapushenij na vikonannya yak okrema programa Inshimi slovami kompilyator perevodit vihidnij tekst programi z movi programuvannya visokogo rivnya v dvijkovi kodi instrukcij procesora Yaksho programa napisana skriptovoyu movoyu to interpretator bezposeredno vikonuye interpretuye vihidnij tekst bez poperednogo perekladu Pri comu programa zalishayetsya movoyu originalu i ne mozhe buti zapushena bez interpretatora Procesor komp yutera u zv yazku z cim mozhna nazvati interpretatorom dlya mashinnogo kodu Podil na kompilovani i interpretovani movi ye umovnim Tak dlya bud yakoyi tradicijno kompilyacijnoyi movi yak napriklad Paskal mozhna napisati interpretator Krim togo bilshist suchasnih chistih interpretatoriv ne vikonuyut konstrukciyi movi bezposeredno a kompilyuyut yih v deyake visokorivneve promizhne predstavlennya napriklad z rozimenuvannyam zminnih i rozkrittyam makrosiv Dlya bud yakoyi interpretuvalnoyi movi mozhna stvoriti kompilyator napriklad mova Lisp pochatkovo interpretovana mozhe kompilyuvatisya bez obmezhen Stvoryuvanij pid chas vikonannya programi kod mozhe tak samo dinamichno kompilyuvatisya pid chas vikonannya Yak pravilo skompilovani programi vikonuyutsya shvidshe i ne vimagayut dlya vikonannya dodatkovih program oskilki vzhe perevedeni na mashinnu movu Razom z tim pri kozhnij zmini tekstu programi potribno yiyi perekompilyaciya sho upovilnyuye proces rozrobki Krim togo skompilovana programa mozhe vikonuvatisya tilki na tomu zh tipi komp yuteriv i yak pravilo pid tiyeyu zh operacijnoyu sistemoyu na yaku buv rozrahovanij kompilyator Shob stvoriti vikonuvanij fajl dlya mashini inshogo tipu potribna nova kompilyaciya Interpretovani movi volodiyut deyakimi specifichnimi dodatkovimi mozhlivostyami div vishe krim togo programi na nih mozhna zapuskati vidrazu zh pislya zmini sho polegshuye rozrobku Programa skriptovoyu movoyu mozhe buti najchastishe zapushena na riznih tipah mashin ta operacijnih sistem bez dodatkovih zusil Odnak interpretovani programi vikonuyutsya pomitno povilnishe nizh kompilovani krim togo voni ne mozhut vikonuvatisya bez programi interpretatora Deyaki movi napriklad Java ta C perebuvayut mizh kompilovanimi i interpretovanimi A same programa kompilyuyetsya ne v mashinnu movu a v mashinno nezalezhnij kod nizkogo rivnya bajt kod Dali bajt kod vikonuyetsya virtualnoyu mashinoyu Dlya vikonannya bajt kodu zazvichaj vikoristovuyetsya interpretaciya hocha okremi jogo chastini dlya priskorennya roboti programi mozhut buti translovani v mashinnij kod bezposeredno pid chas vikonannya programi za tehnologiyeyu kompilyaciyi na lotu Just in time compilation JIT Dlya Java bajt kod vikonuyetsya virtualnoyu mashinoyu Java Java Virtual Machine JVM dlya C Common Language Runtime Podibnij pidhid u deyakomu sensi dozvolyaye vikoristovuvati plyusi yak interpretatoriv tak i kompilyatoriv Slid zgadati sho ye movi yaki mayut i interpretator i kompilyator Fort Forth Proceduri ta funkciyi Redaguvati Pidprogrami dilyatsya na proceduri ta funkciyi Sintaksichno proceduri ta funkciyi skladayutsya z zagolovka sho mistit klyuchove slovo procedure abo function im yam za yakim mozhe sliduvati opis peredavanih parametriv v duzhkah tip povertanogo znachennya cherez simvol dvokrapki dlya funkcij i krapki z komoyu dlya procedur pislya zagolovka sliduye tilo pislya yakogo stavitsya simvol program mine output var i integer procedure print var j integer function next k integer integer begin next k 1 end begin writeln Vsogo j j next j end begin i 1 while i lt 10 do print i end Tilo proceduri yak i programi svoyeyu chergoyu mozhe mistiti opisi procedur i funkcij Takim chinom proceduri i funkciyi mozhut buti vkladeni odin v odnogo yak zavgodno gliboko pri comu tilo programi same verhnye v lancyuzhku Prichomu vmist sekcij opisu zminnih tipiv konstant zovnishnogo tila proceduri funkciyi programi roztashovanih pered opisom proceduri funkciyi dostupni useredini neyi Takozh v bilshosti dialektiv z proceduri mozhna zvertatisya do parametriv zovnishnoyi proceduri Uslid za zagolovkom procedur funkcij zamist tila mozhe pomishatisya klyuchove slovo forward ce robitsya v tomu vipadku yaksho opis proceduri funkciyi roztashovuyetsya v programi pislya yiyi vikliku i pov yazano z pidtrimuvanoyu v Paskali mozhlivistyu kompilyaciyi programi za odin prohid Proceduri vidriznyayutsya vid funkcij tim sho funkciyi povertayut yakes znachennya a proceduri ni Ob yektno oriyentovane programuvannya Redaguvati Dokladnishe Ob yektno oriyentovana mova programuvannya ta Ob yektno oriyentovane programuvannyaOb yektno oriyentovane programuvannya OOP ce tehnologiya stvorennya skladnogo programnogo zabezpechennya yake zasnovane na predstavlenni programi u viglyadi sukupnosti ob yektiv kozhen z yakih ye ekzemplyarom pevnogo klasu a klasi utvoryuyut iyerarhiyu zi spadkoyemstvom vlastivostej Osnovna perevaga OOP ce znachne sproshennya procesiv stvorennya ta modifikaciyi programnih sistem Nabagato legshe manipulyuvati 100 ob yektami kozhen z yakih sam vidpovidaye za svoyu povedinku i obrobku danih pov yazanih z nim nizh tisyachami funkcij rozkidanih po riznih modulyah Osnovni nedoliki v OOP ce deyake znizhennya shvidkodiyi cherez skladnishu organizaciyu programnoyi sistemi a takozh yak pravilo pomitne zbilshennya ob yemu binarnogo kodu osoblivo pri vikoristanni standartnih bibliotek klasiv v nevelikih programah cherez te sho bilshist suchasnih kompilyatoriv i komponuvalnikiv ne zdatni viyaviti i vidaliti ves kod sho dovoditsya na nevzhivani klasi virtualni metodi i inshi elementi OOP Semantika mov programuvannya Redaguvati Dokladnishe Semantika mov programuvannyaIsnuye kilka pidhodiv do viznachennya semantiki mov programuvannya Najbilsh shiroko poshireni nastupni tri riznovidi semantik operacijna derivacijna aksiomatichna i denotacijna matematichna dzherelo Pri opisi semantiki v ramkah operacijnogo pidhodu zazvichaj vikonannya konstrukcij movi programuvannya interpretuyetsya za dopomogoyu deyakoyi uyavnoyi abstraktnoyi EOM Derivacijna semantika opisuye naslidki vikonannya konstrukcij movi za dopomogoyu movi logiki i zavdannya pered i postumov Denotacijna semantika operuye ponyattyami tipovimi dlya matematiki mnozhini vidpovidnosti a takozh sudzhennya tverdzhennya ta in Movi programuvannya nizkogo rivnya RedaguvatiDokladnishe Nizkorivneva mova programuvannyaPershi komp yuteri dovodilos programuvati dvijkovimi mashinnimi kodami Prote programuvati takim chinom dovoli trudomistke i vazhke zavdannya 13 Dlya sproshennya cogo zavdannya pochali z yavlyatisya movi programuvannya nizkogo rivnya yaki dozvolyali zadavati mashinni komandi v zrozumilishomu dlya lyudini viglyadi Dlya peretvorennya yih u dvijkovij kod buli stvoreni specialni programi asembleri Priklad mashinnogo kodu i predstavlennya jogo na asembleri 14 Prikladom movi nizkogo rivnya ye mova asemblera Movi nizkogo rivnya oriyentovani na konkretnij tip procesora i vrahovuyut jogo osoblivosti tomu dlya perenesennya programi na asembleri na inshu aparatnu platformu yiyi potribno majzhe cilkom perepisati Pevni vidminnosti ye i v sintaksisi program pid rizni kompilyatori Shopravda centralni procesori dlya komp yuteriv firm AMD ta Intel praktichno sumisni j vidriznyayutsya lishe deyakimi specifichnimi komandami A os specializovani procesori dlya inshih pristroyiv napriklad videokart telefoniv mistyat suttyevi vidminnosti Perevagi Redaguvati Za dopomogoyu mov nizkogo rivnya stvoryuyut efektivni j kompaktni programi oskilki rozrobnik otrimuye dostup do vsih mozhlivostej procesora Vadi Redaguvati Programist sho pracyuye z movami nizkogo rivnya maye buti visokoyi kvalifikaciyi dobre rozumiti budovu mikroprocesornoyi sistemi dlya yakoyi stvoryuye programu Rezultivna programa ne mozhe buti perenesena na komp yuter abo pristrij z inshim tipom procesora chasto trudnoshi vinikayut i pri perenesenni programi dlya inshoyi operacijnoyi sistemi Znachnij chas rozrobki velikih i skladnih program Movi nizkogo rivnya yak pravilo vikoristovuyut dlya napisannya nevelikih sistemnih program drajveriv pristroyiv moduliv stikiv z nestandartnim obladnannyam programuvannya specializovanih mikroprocesoriv koli najvazhlivishimi vimogami ye kompaktnist shvidkodiya i mozhlivist pryamogo dostupu do aparatnih resursiv Movi programuvannya visokogo rivnya RedaguvatiDokladnishe Mova programuvannya visokogo rivnyaTranslyatori 15 podilyayutsya na kompilyatori peretvoryuyut tekst programi v mashinnij kod yakij mozhna zberegti i pislya cogo vikoristovuvati uzhe bez kompilyatora prikladom ye vikonuvalni fajli z rozshirennyam exe interpretatori peretvoryuyut chastinu programi v mashinnij kod vikonuyut i pislya cogo perehodyat do nastupnoyi chastini Pri comu shorazu pri vikonanni programi vikoristovuyetsya interpretator Mozhna skazati ye zrozumilishimi lyudini nizh komp yuteru Osoblivosti konkretnih komp yuternih arhitektur v nih ne vrahovuyutsya tomu stvoreni programi legko perenosyatsya z komp yutera na komp yuter Zdebilshogo dostatno prosto perekompilyuvati programu pid pevnu komp yuternu arhitekturnu ta operacijnu sistemu Rozroblyati programi na takih movah znachno prostishe i pomilok dopuskayetsya menshe Znachno skorochuyetsya chas rozrobki programi sho osoblivo vazhlivo pri roboti nad velikimi programnimi proyektami Narazi u seredovishi rozrobnikiv vvazhayetsya sho movi programuvannya yaki mayut pryamij dostup do pam yati ta registriv abo mayut asemblerni vstavki potribno vvazhati movami programuvannya z nizkim rivnem abstrakciyi Tomu bilshist mov yaki vvazhalisya movami visokogo rivnya do 2000 go roku zaraz vzhe takimi ne vvazhayutsya Adresna mova programuvannya Fortran Kobol Algol Pascal PascalABC Java C C Objective C Smalltalk C DelphiNedolikom mov visokogo rivnya ye bilshij rozmir program u porivnyanni z programami movoyu nizkogo rivnya Sam tekst program movoyu visokogo rivnya menshij prote yaksho vzyati u bajtah to kod pochatkovo pisanij na asembleri bude kompaktnishij Tomu v osnovnomu movi visokogo rivnya vikoristovuyutsya dlya rozrobok programnogo zabezpechennya komp yuteriv i pristroyiv yaki mayut velikij obsyag pam yati A rizni pidvidi asembleru zastosovuyutsya dlya programuvannya inshih pristroyiv de kritichnim ye rozmir programi Pokolinnya mov programuvannya RedaguvatiDokladnishe Pokolinnya mov programuvannyaInkoli v literaturi ta v interneti zgaduyut pro p yat pokolin mov programuvannya 16 17 18 19 shopravda danij podil ye spirnim i superechnim V profesijnij literaturi z programuvannya dovoli ridko zgaduyut pro pokolinnya mov programuvannya a bilshe zoseredzhuyutsya na funkcionalnij klasifikaciyi mov programuvannya Krim togo same vidnesennya pevnih mov do riznih pokolin riznitsya u riznih avtoriv Podil na pokolinnya mov programuvannya pochav poshiryuvatis z poyavoyu visokorivnevih mov programuvannya i do togo ne zastosovuvavsya Visokorivnevi movi programuvannya pochali vvazhatisya tretim pokolinnyam asemblerni movi drugim a mashinnij kod pershim pokolinnyam Suchasni sprobi klasifikaciya mov na chetverte i p yate pokolinnya provodyatsya riznimi avtorami po riznomu po riznih oznakah i riznicya mizh movami tretogo chetvertogo ta p yatogo pokolinnya chasto dovoli nechitka Krim togo bagato kompanij rozrobniki mov programuvannya ta seredovish programuvannya dlya nih vikoristovuyut marketingovij hid progoloshuyuchi pevnu movu movu ta integrovane seredovishe rozrobki dlya neyi p yatim pokolinnyam Div takozh RedaguvatiVikicitati mistyat vislovlyuvannya na temu Mova programuvannyaVikishovishe maye multimedijni dani za temoyu Movi programuvannyaKomp yuterna mova Programuvannya Mova modelyuvannya Spisok mov programuvannya Sistema tipizaciyi Standart oformlennya kodu Teoriya mov programuvannyaPrimitki Redaguvati Pratt rozdil I Gabrielli S 27 Spisok mov programuvannya Arhiv originalu za 23 chervnya 2013 Procitovano 18 travnya 2010 angl a b Aaby Anthony 2004 Introduction to Programming Languages Arhiv originalu za 8 listopada 2012 Procitovano 11 bereznya 2017 Benjamin C Pierce writes the lambda calculus has seen widespread use in the specification of programming language features in language design and implementation and in the study of type systems Pierce Benjamin C 2002 Types and Programming Languages MIT Press s 52 ISBN 0 262 16209 1 Rojas Raul et al 2000 Plankalkul The First High Level Programming Language and its Implementation Institut fur Informatik Freie Universitat Berlin Technical Report B 3 2000 full text Arhivovano 18 zhovtnya 2014 u Wayback Machine Yuschenko Yury 2020 Okremi aspekti deklarativnosti minus shtrih operaciyi Naukovi zapiski NaUKMA Komp yuterni nauki ukr 3 s 17 26 ISSN 2617 7323 doi 10 18523 2617 3808 2020 3 17 26 Arhiv originalu za 29 chervnya 2021 Procitovano 29 chervnya 2021 Future Tense 29 kvitnya 2011 Arhiv originalu za 18 veresnya 2012 Procitovano 17 kvitnya 2012 At Mozilla Summit 2010 we launched Rust a new programming language motivated by safety and concurrency for parallel hardware the manycore future which is upon us Crystal 0 1 0 released crystal lang org 19 lipnya 2014 Arhiv originalu za 19 sichnya 2016 Procitovano 10 grudnya 2020 Pratt T Zelkovich M C 42 Michael Lee Scott Programming language pragmatics Edition 2 Morgan Kaufmann 2006 ISBN 0 12 633951 1 p 18 19 Pratt T Zelkovich M 2002 S 186 Pam yat EOM i predstavlennya informaciyi nedostupne posilannya Pidgotovka i vidladka program Arhiv originalu za 24 travnya 2009 Procitovano 26 bereznya 2010 Translyaciya koda Arhiv originalu za 24 bereznya 2010 Procitovano 26 bereznya 2010 Videoprezentaciya na temu Istoriya mov programuvannya angl Sergej Bobrovskij Pyatoe pokolenie yazyki programmirovaniya ili prikladnye sistemy PC Week Live Arhiv originalu za 10 serpnya 2011 Procitovano 18 travnya 2010 Yazyk programmirovaniya Arhiv originalu za 25 lyutogo 2011 Procitovano 18 travnya 2010 Sokolov V V Evolyuciya yazykov programmirovaniya Arhiv originalu za 3 bereznya 2011 Procitovano 18 travnya 2010 Literatura RedaguvatiPratt T W Zelkovitz M V Programming languages design and implementation 4th ed Prentice Hall 2000 angl Pratt T Zelkovich M Yazyki programmirovaniya razrabotka i realizaciya Spb Piter 2002 688 s ros Gabbrielli Maurizio 2010 Programming languages principles and paradigms London New York Springer ISBN 9781848829145 Robert W Sebesta Concepts of Programming Languages 9th ed Addison Wesley 2009 Posilannya RedaguvatiThe Computer Language Benchmarks Arhivovano 29 travnya 2018 u Wayback Machine porivnyannya mov za shvidkodiyeyu i vikoristanimi resursami Tiobe Index Arhivovano 25 grudnya 2018 u Wayback Machine rejting mov programuvannya Forum programistiv Arhivovano 21 travnya 2012 u Wayback Machine ukrayinomovnij forum programistiv Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Mova programuvannya amp oldid 39407349