И hфopmaц ohhыe тexhoлor b yпpabлeh


Download 268.19 Kb.
Sana09.05.2023
Hajmi268.19 Kb.
#1448438
Bog'liq
ponyatiynyy-analiz-i-kontekstnaya-tehnologiya-programmirovaniya



ИHФOPMAЦИOHHЫE TEXHOЛO ИИ B FHPABЛEHИИ
И hфopmaц ohhыe тexhoлor b yпpabлeh



FДn 681.3


ПOHRTHHHЫH AHAЛHC H KOHTEKHTHAR TENHOЛOГHR ПPOГPAMMHPOBAHHR


B. C. Bыxobaheц(1), B. Я. Иoceh1 h(2)

  1. Nнctıtyt +p06лem y+pabлeнıя ım. B. A. Tpa+e3нıı0ba, r. M0cıba;

  2. Hpıднectp0bcııй r0cyдapctbeнный yнıbepcıtet ım. T. F. Neb7eнı0, r. Tıpac+0лa






BBEДEHNE



Cobpemeнныe инфopmaциoнныe тexнoлoFии xapakтe- pиsyютc bospacтaющeй cлoжнocтью unØopmayuonnыz cucmem, cosдabaemыx b pasлиuныx oблacт x и пpeднasнa- ueнныx дл xpaнeни , oбpaбoтkи, пoиcka, pacпpocтpa- нeни , пepeдauи и пpeдocтabлeни инфopmaции. Hakoп- лeнный oпыт иx пpoekтиpobaни пokasыbaeт cлoжнocть и тpyдoemkocть ЭтoFo пpoцecca, длитeльнoFo пo bpemeни и тpeбyющeFo bыcokoй kbaлифиkaции yuacтbyющиx b нem cпeциaлиcтob.
Дo cиx пop пpoekтиpobaниe инфopmaциoнныx cиc- тem bыпoлн eтc b ocнobнom нa интyитиbнom ypobнe c пpиmeнeниem нeфopmaлиsobaнныx meтoдob, ocнobaн- ныx нa иckyccтbe пpoekтиpobщиkob, иx пpakтиueckom oпытe, Эkcпepтныx oцeнkax и дopoFocтo щиx Эkcпepи- meнтaльныx пpobepkax пoлyuaemыx pesyльтaтob. Kpome тoFo, b пpoцecce жиsнeннoFo циkлa инфopmaциoннa cиcтema пoдлeжит пocтo ннomy иsmeнeнию b cooтbeтcт- bии c иsmeн ющиmиc пoтpeбнocт mи пoльsobaтeлeй и pasbитиem иx пpeдcтabлeний o пpeдmeтнoй oблacти, uтo eщe бoлee ycлoжн eт paspaбoтky и coпpoboждeниe тakиx cиcтem.
Cтpykтypнa meтoдoлoFи пpeдocтabилa b pacпop - жeниe paspaбoтuиkob meтoды cтpykтypнoй дekomпosи- ции пpeдmeтнoй oблacти. HaFл днocть и cтpoFocть cmpyкmypnoso ananuзa пosboл eт paspaбoтuиkam и пoль- sobaтeл m cиcтemы фopmaлиsobaть пpeдcтabлeни , нeoб- xoдиmыe дл aдekbaтнoй peaлиsaции инфopmaциoннoй cиcтemы.
B cтpykтypнom aнaлиse и пpoekтиpobaнии пpиmeн - ютc pasлиuныe moдeли, oпиcыbaющиe фyнkциoнaль- нyю cтpykтypy cиcтemы (moдeль SADT) [l], пocлeдoba- тeльнocть bыпoлн emыx дeйcтbий (moдeль IDEF3) [2], пepeдauy дaнныx meждy фyнkциoнaльныmи пpoцeccamи (диaFpammы пoтokob дaнныx DFD) [3], oтнomeни meж- дy дaнныmи (moдeль “cyщнocть—cb sь” или ERM) [4].
Oднako mиpokoe пpиmeнeниe cтpykтypнoFo aнaлиsa и cлeдobaниe eFo pekomeндaци m cb saнo c тpyднocт mи cosдaни дeтaльныx фopmaльныx cпeцифиkaций инфop- maциoннoй cиcтemы, пpobepkи иx нa пoлнoтy и нeпpo- тиbopeuиbocть. Eщe бoльmиe тpyднocти oжидaют paspa- бoтuиkob пpи пoпытke иsmeнeни Этиx cпeцифиkaций.
Ha cmeнy cтpykтypнomy aнaлиsy и kak ecтecтbeннoe eFo pasbитиe пpиmлa meтoдoлoFи o6aeкmno opuenmupo- вannoso ananuзa и oднoиmeннa тexнoлoFи пpoFpammи- pobaни . Oбъekтнo opиeнтиpobaнный aнaлиs нeoбxoдиm дл cosдaни oбъekтнoй moдeли пpeдmeтнoй oблacти. Ocнobныe пpинципы oбъekтнo opиeнтиpobaннoй тexнo- лoFии (дeцeнтpaлиsaци , koнтpakты, camoдocтaтouнocть, kлaccифиkaци , бecmobнocть) [5] peaлиsyютc meтoдa- mи нacлeдobaни , инkaпcyл ции и пoлиmopфиsma пpи cтpykтypнoй дekomпosиции пpeдmeтнoй oблacти [6]. Mpи Этom иcпoльsyютc тakиe пoн ти kak oбъekт, kлacc, aтpибyт, meтoд, интepфeйc и дp.
Фopmaльнa cпeцифиkaци pesyльтaтob oбъekтнo opиeнтиpobaннoFo aнaлиsa ocyщecтbл eтc нa sыke mo- дeлиpobaни UML (Unified ModelinJ LanJuaJe) [7], ko- тopый coдepжит Fpaфиueckиe и sыkobыe cpeдcтba дл oпpeдeлeни , пpeдcтabлeни , пpoekтиpobaни и дoky-





meнтиpobaни pesyльтaтob aнaлиsa пpeдmeтнoй oблacти. Яsыk пoддepжиbaeт cтaндapтный нaбop дeкomnoзuyuon- nыz czem, peaлиsyemыx b bидe bcebosmoжныx диaFpamm и нoтaций. B UML oтpaжeнa kak meтoдoлoFи cтpykтypнo- Fo aнaлиsa b bидe диaFpamm kлaccob, komпoнeнтob и иx pasmeщeни , тak и oбъekтнo opиeнтиpobaннa meтoдo- лoFи , пpeдcтabлeннa b bидe pasлиuныx moдeлeй пobe- дeни oбъekтob: bapиaнты пpиmeнeни , bsaиmoдeйcтbиe, cocтo ни , дe тeльнocть.


Oтлиuитeльнoe cboйcтbo UML oт дpyFиx cpeдcтb mo- дeлиpobaни (IDEF3, DFD, ERM) — bosmoжнocть pac- mиpeни sыka, ocнobaннa нa тakиx cyщнocт x, kak cтepeoтипы, тeFи и oFpaниueни . Oднako Fлabнoe дocтo- инcтbo oбъekтнo opиeнтиpobaннoFo пoдxoдa cocтoит b тom, uтo cosдabaemыe oбъekтнo opиeнтиpobaнныe moдe- ли бoлee oтkpыты и лeFue пoддaютc bнeceнию иsmeнe- ний, пockoльky иx koнcтpykци бasиpyeтc нa ycтoйuи- bыx фopmax oтpaжeни pesyльтaтob дekomпosиции. Gтo дaeт bosmoжнocть moдeли pasbиbaтьc пocтeпeннo и нe пpиboдит k пoлнoй ee пepepaбoтke дaжe b cлyuae cyщe- cтbeнныx иsmeнeний пpeдcтabлeний o пpeдmeтнoй oб- лacти и тpeбobaний k пpoekтиpyemoй инфopmaциoннoй cиcтeme.
Nsbecтный нeдocтaтok cobpemeнныx тexнoлoFий пpoFpammиpobaни sakлюuaeтc b нaлиuии дocтaтouнo

иsyueни пpeдmeтнoй oблacти и cпeцифиkи saдaннoFo kлacca пpиkлaдныx saдau, eщe дo нauaлa пpoFpammиpo- baни , фopmиpyeтc cиcтema пoн тий, пpиcпocoблeннa дл пocтaнobkи и pemeни saдau, koтopa и нaйдeт cboe oтpaжeниe b cosдabaemom sыke.


ДpyFoй бasobый пpинцип, иmeнem koтopoFo нasbaнa пpeдcтabл ema тexнoлoFи , cocтoит b koнтekcтнoй ин- тepпpeтaции лekcem. Koнтekcтнa интepпpeтaци kak пpинцип sakлюuaeтc b oпpeдeлeнии cemaнтиueckoFo (cmыcлoboFo) sнaueни лekcem cпeциaлиsиpobaннoFo
sыka b sabиcиmocти oт okpyжaющeFo иx koнтekcтa. B oтлиuиe oт Feнepaтopob komпил тopob [l0], y koтopыx bosmoжнocти saдaни koнтekcтныx ycлobий, нeoбxoди- mыx дл peaлиsaции sыkob пpoFpammиpobaни bыcoko- Fo ypobн , дocтaтouнo бeдны, b koнтekcтнoй тexнoлoFии koнтekcтныe ycлobи нe тoльko cиcтemaтиueckи saдaют- c , нo и ecтecтbeнныm oбpasom иcпoльsyютc . Gтo пo- sboл eт нe тoльko yлyumить bыpasитeльныe bosmoжнoc- ти oпpeдeл emoFo sыka, нo и пobыcить eFo ypobeнь.
N, нakoнeц, b cb sи c sapoждeниem koнтekcтнoй тex- нoлoFии kak нekoтopoFo pasbити oбъekтнo opиeнтиpo- baннoй, eй нe uyжды bce тe пpинципы и meтoды, нa ko- тopыx ocнobaнa пocлeдн .



    1. KoHTEKCTHAR TEXHoЛoГNR ПPoГPAMMNPoBAHNR

бoльmoFo cemaнтиueckoFo (cmыcлoboFo) paspыba meждy
coдepжaтeльныmи пpeдcтabлeни mи o пpeдmeтнoй oб-

лacти и pemaemыmи saдauamи и тemи cpeдcтbamи, koтo- pыe saлoжeны b sыke пpoFpammиpobaни дл pemeни saдau. Nныmи cлobamи, cemanmunecкuǔ paзpыв — Этo b- лeниe нecooтbeтcтbи pemaemыx saдau тem cpeдcтbam, koтopыe иcпoльsyютc дл иx pemeни .
Oднa иs ocoбeннocтeй cemaнтиueckoFo paspыba oпpe- дeл eтc pasлиuиem cиcтemы пoн тий sыka пpoFpammи- pobaни и cиcтemы пoн тий, пpиmeн emыx дл пocтa- нobkи и pemeни saдau b тoй или инoй пpeдmeтнoй oблacти. Mo cboeй cyти любoй yниbepcaльный sыk пpo- Fpammиpobaни нab sыbaeт paspaбoтuиky пpoFpammы нekoтopyю cиcтemy пoн тий, b тo bpem kak bыcokoypob- нeba moдeль пpeдmeтнoй oблacти c Этиmи пoн ти mи coFлacyeтc плoxo или нe coFлacyeтc booбщe.
Bыcoka cтoиmocть инфopmaциoнныx cиcтem, иx ни- ska Эффekтиbнocть и нaдeжнocть, oбъekтиbнa тpyдo- emkocть, интeллekтyaльнa и тexнoлoFиuecka cлoж- нocть пpoцecca пpoFpammиpobaни b нekoтopoй cтeпeни
bл ютc пocлeдcтbи mи cemaнтиueckoFo paspыba. Дл cokpaщeни cemaнтиueckoFo paspыba иcпoльsyeтc пo- bыmeниe ypobн aбcтpakций sыkob пpoFpammиpobaни [8]. Oднako пocлeднee cниmaeт тoльko uacть пpoблem, нe saтpaFиba cyщecтbeнныm oбpasom пoн тийнyю cиcтemy
sыka пpoFpammиpobaни .
Hacтo щa cтaть пocb щeнa koнтekcтнoй тexнoлo- Fии пpoFpammиpobaни , koтopa sapoдилacь kak oбъeди- нeниe oбъekтнo opиeнтиpobaннoй и фopтoпoдoбнoй тexнoлoFий, ocyщecтbлeннoe пyтem koнтekcтнoй интep- пpeтaции cлob фopтoпoдoбнoFo sыka [9] и нa ocнobe пoн тийнoFo aнaлиsa пpeдmeтнoй oблacти.
C цeлью cokpaщeни cemaнтиueckoFo paspыba cpeд- cтbamи koнтekcтнoй тexнoлoFии cosдaeтc cпeциaлиsи- pobaнный sыk, oтpaжaющий пoн тийнyю cтpykтypy пpeдmeтнoй oблacти и kлacc pemaemыx saдau. Takoй пoдxoд ocнobыbaeтc нa дoпyщeнии, uтo yжe b пpoцecce
Дaннyю тexнoлoFию бyдem paccmaтpиbaть kak meтa-
sыk и cиcтemy пpoFpammиpobaни , koтopыe oбъeдинe- ны b pamkax eдинoй meтoдoлoFии, oпpeдeл emoй kak co- bokyпнocть meтoдob, пpиmeн emыx b пpoцecce paspaбoт- kи пpoFpamm и oбъeдинeнныx oдниm oбщиm пoдxoдom.



      1. ПOнятнйнaя MOдЯль н пpнkлaдныЯ 3aдauн

Moд npeдmemnoǔ o6nacmbα бyдem пoниmaть bыдeлeн- ный фpaFmeнт peaльнoй дeйcтbитeльнocти, пpeдcтabл e- mый b нamem cosнaнии cobokyпнocтью нekoтopыx cyщ- нocтeй (пpeдmeтob, пpoцeccob, bлeний, saдau и т. д.), koтopыe moFyт быть yниkaльнo идeнтифициpobaны и oпиcaны.
Haибoлee ecтecтbeнныm cпocoбom oпиcaни cyщнoc- тeй пpeдmeтнoй oблacти bидитc cooтнeceниe c ниmи cobokyпнocти пoн тий, oбpasyющиx ee пoн тийнyю cтpykтypy [ll]. B пpoцecce пpoFpammиpobaни бyдem cтpoить ee nonяmuǔnyα moдenb, дл ueFo пpeдycmoтpиm cпeцифиueckиe sыkobыe cpeдcтba.
Moн тийнa moдeль cтpoитc пyтëm bы bлeни и bы- paжeни nonяmuǔnoǔ cmpyкmypы пpeдmeтнoй oблacти b oбъeme, дocтaтouнom дл pemeни нekoтopoFo kлacca пpиkлaдныx saдau. B oтлиuиe oт дpyFиx тexнoлoFий, нa- пpиmep cтpykтypнoй, ocнobaннoй нa cтpykтypнom aнa- лиse пpeдmeтнoй oблacти, и oбъekтнo opиeнтиpobaннoй, ocнobaннoй нa oбъekтнom aнaлиse, koнтekcтнyю тexнo- лoFию пpoFpammиpobaни oпpeдeлиm нa ocнobe пoн - тийнoFo aнaлиsa пpeдmeтнoй oблacти.
B kauecтbe пpoFpammы bыcтyпaeт пoн тийнa moдeль пpeдmeтнoй oблacти, дoпoлнeннa oпиcaниem pemeни пpиkлaднoй saдauи. Mpи Этom oднa и тa жe moдeль moжeт пpиmeн тьc дл pemeни pasныx или нeckoльkиx пpи- kлaдныx saдau. B пoн тийнoй moдeли ycлobнo bыдeл - ютc ueтыpe uacти:
— пoн тийнa cтpykтypa пpeдmeтнoй oблacти;








  • cинтakcиueckиe пpabилa bыpaжeни пoн тий b тekcтe;

  • oпиcaниe cemaнтиkи пpabил bыpaжeни пoн тий;

  • oпиcaниe пpoцecca komпил ции.

Moн тийнa cтpykтypa и cинтakcиueckиe пpabилa oпиcыbaютc нa дekлapиpyemom b koнтekcтнoй тexнoлo- Fии memaязыкe, a oпиcaниe cemaнтиkи и pemaemoй sa- дauи bыпoлн ютc нa cпeциaлиsиpobaннom sыke, sa- дabaemom пoн тийнoй cтpykтypoй и cинтakcиueckиmи пpabилamи. ToFдa b pesyльтaтe oпиcaни пoн тийнoй cтpykтypы пpeдmeтнoй oблacти и cинтakcиueckиx пpa- bил дл bыpaжeни пoн тий oпpeдeл eтc нekoтopый cпeциaлиsиpobaнный sыk пpoFpammиpobaни , нa koтo- pom ocyщecтbл eтc kak pemeниe пpиkлaднoй saдauи, тak и uacтиuнoe oпиcaниe eFo cemaнтиkи.
Takиm oбpasom, пoн тийнa cтpykтypa и cинтakcиue- ckиe пpabилa saдaют cинтakcиc oпpeдeл emoFo b moдeли cпeциaлиsиpobaннoFo sыka. anpeдenяemыǔ язык, b cboю ouepeдь, пpиmeн eтc kak дл saдaни cemaнтиkи cин- тakcиueckиx пpabил, тak и дл oпиcaни pemeни пpи- kлaднoй saдauи.



      1. ГpaMMaтнuЯckнй pa3ൾOp н kOMпнляцня

Komпил ци пoн тийнoй cтpykтypы и cинтakcиue- ckиx пpabил b пpeдлaFaemoй тexнoлoFии ocyщecтbл eтc тpaдициoнныmи meтoдamи нa ocнobe oпpeдeлeни cин- тakcиca нekoтopoFo meтa sыka b bидe фopmaльнoй Fpam- maтиkи и coдepжaтeльнoFo oпиcaни eFo cemaнтиkи. Komпил ци oпиcaний cemaнтиkи дл пpabил bыpaжe- ни пoн тий и тekcтa pemeни пpиkлaднoй saдauи ocy- щecтbл eтc cosдabaemыm b пpoцecce пpoFpammиpoba- ни cпeциaлиsиpobaнныm komпил тopom. Mocлeднee oбecпeuиbaeтc тem, uтo любoe cинтakcиueckoe пpabилo moжeт дoпoлн тьc oпиcaниem пpoцecca eFo komпил - ции, koтopoe тakжe bыpaжaeтc нa oпpeдeл emom sыke.

sыka пpoFpammиpobaни k пocтaнobke и pemeнию пpи- kлaдныx saдau cлeдyeт oжидaть пobыmeни kauecтba и нaдeжнocти инфopmaциoнныx cиcтem, cosдaнныx нa oc- нobe koнтekcтнoй тexнoлoFии.


ДpyFoй ocoбeннocтью koнтekcтнoй тexнoлoFии, bы- тekaющeй иs нaлиuи bыpasитeльныx cpeдcтb oпиcaни пpoцecca komпил ции, cлeдyeт нasbaть bosmoжнocть иc- пoльsobaни cиcтemы koнтekcтнoFo пpoFpammиpobaни cobmecтнo c любoй иs иsbecтныx цeлebыx плaтфopm, нa- пpиmep:

  • c mиkpokoнтpoллepamи, нe иmeющиmи oпepaци- oннoй cиcтemы;

  • c bыuиcлитeльныmи cиcтemamи, иmeющиmи pasbи- тyю oпepaциoннyю cpeдy;

  • c плaтфopmeннo-нesabиcиmыmи bиpтyaльныmи mamинamи;

  • c дpyFиmи cиcтemamи пpoFpammиpobaни .

Ouebиднo, b cлyuae aппapaтнoй плaтфopmы пpиb ska oпpeдeл emoFo b moдeли cпeциaлиsиpobaннoFo sыka k цeлeboй плaтфopme ocyщecтbл eтc ниskoypobнebыmи cpeдcтbamи, нaпpиmep, пyтem пp moй Feнepaции koдa. ДpyFoй kpaйний cлyuaй sakлюuaeтc b пpиb ske oпpeдe- л emoFo sыka k цeлeboй плaтфopme c пomoщью дpyFoй cиcтemы пpoFpammиpobaни , и тoFдa oпpeдeл emый
sыk oпиcыbaeтc нa sыke, пoддepжиbaemom Этoй cиc- тemoй. Дл иccлeдobaни koнтekcтнoй тexнoлoFии abтo- pamи peaлиsobaнa cиcтema пpoFpammиpobaни , пoддep- жиbaющa Эти kpaйниe cлyuaи.
He пpeтeндy нa пoлнoтy иsлoжeни , kpaтko oпиmem тoльko тe пpoцeccы, koтopыe akтyaльны b pamkax нa- cтo щeй cтaтьи и cyщecтbeнныm oбpasom oтлиuaют koн- тekcтнyю тexнoлoFию пpoFpammиpobaни oт дpyFиx тex- нoлoFий. Дл packpыти coдepжaни koнтekcтнoй тex- нoлoFии paccmoтpиm бoлee дeтaльнo cocтabныe uacти пoн тийнoй moдeли.

Cинтakcиueckий aнaлиs и Fpammaтиueckий pasбop

uacти пpoFpammы, нaпиcaннoй нa meтa sыke koнтekcт- нoй тexнoлoFии, peaлиsyeтc иsbecтныmи cpeдcтbamи.
Cинтakcиueckий aнaлиs и Fpammaтиueckий pasбop oпиcaний cemaнтиkи пpabил, pemaemoй saдauи и пpo- цecca komпил ции bыпoлн eтc cпeциaльнo paspaбoтaн- ныmи дл koнтekcтнoй тexнoлoFии meтoдamи cинтakcи- ueckoFo aнaлиsa и FpammaтиueckoFo pasбopa.
Дл пobыmeни Эффekтиbнocти komпил тopa cиcтe- mы koнтekcтнoFo пpoFpammиpobaни пpиmeн eтc paз- necennыǔ spammamunecкuǔ paз6op. Mocлeдний ocнobaн нa koнтekcтнoй интepпpeтaции лekcem и sakлюuaeтc b pas- дeлeнии oпpeдeлeни пpиmeниmocти cинтakcиueckиx пpabил нa дbe uacти: нa koнтekcтнoe coпocтabлeниe, ocy- щecтbл emoe пpи пpocmoтpe нasaд, и cтpykтypнoe coпoc- тabлeниe, bыпoлн emoe пpи пpocmoтpe bпepeд. Oпиcaниe komпил тopa bыxoдит sa pamkи нacтo щeй cтaтьи, b cb sи c uem пpoцecc komпил ции sдecь нe paccmaтpиbaeтc .



      1. CЯMaнтнuЯckнй pa3pыb

Kak cлeдcтbиe фopmиpobaни b пpoцecce пpoFpammи- pobaни cпeциaлиsиpobaннoFo sыka дл oпиcaни pe- maemoй saдauи, пpиmeнeниe koнтekcтнoй тexнoлoFии пpoFpammиpobaни нaпpabлeнo нa cokpaщeниe cemaнти- ueckoFo paspыba meждy bыcokoypobнeboй moдeлью пpeд- meтнoй oблacтью и sыkom пpoFpammиpobaни . @oлee тoFo, b pesyльтaтe пpиближeни bыpasитeльныx cpeдcтb

    1. METAR3ЫK KoHTEKCTHoŇ TEXHoЛoГNN




      1. Бa3ObыЯ пOнятня

Tepm oпpeдeлиm kak Элemeнтapнyю cинтakcиueckyю eдиницy тekcтa нa нekoтopom фopmaльнom sыke, koтo- pa bыpaжaeтc пocлeдobaтeльнocтью зnaкoв anØaвuma ЭтoFo sыka. Cam aлфabит и bxoд щиe b нeFo sнakи нa- sobem mepmunanbnыmu.
Teкcmom бyдem нasыbaть пocлeдobaтeльнocть лekcem, пpeднasнaueннyю дл bыpaжeни нekoтopoFo cлoжнoFo cmыcлa. Keкcemy oпpeдeлиm kak Элemeнтapнyю cmыcлo- byю (cemaнтиueckyю) eдиницy тekcтa, bыpaжeннyю oд- ниm или нeckoльkиmи тepmamи. Nныmи cлobamи, лek- cema — Этo mнoжecтbo тepmob bmecтe c пpипиcaнныm (coпocтabлeнныm) иm cmыcлom. Лekcema, bыpaжeннa oдниm тepmинaльныm sнakom, нasыbaeтc cumвonom. Tekcт, b oтлиuиe oт лekcem, пpeдпoлaFaeт cboe дeлeниe нa cmыcлobыe uacти, b тo bpem kak лekcemы тakoFo дe- лeни нe дoпyckaют.
Дл bыpaжeни cинтakcиca тekcтob нa oпpeдeл e- mom sыke bocпoльsyemc иsbecтныm фopmaлиsmom koнтekcтнo-cboбoдныx Fpammaтиk [l2]. Konmeкcmno- cвo6oдnoǔ spammamuкoǔ нasыbaeтc фopmaльнa cиcтe- ma , cocтo щa иs тepmинaльнoFo aлфabитa T, нeтepmинaльнoFo aлфabитa N, mнoжecтba пpabил bыbo- дa, или пpeдлoжeний, S bидa A → α и bыдeлeннoFo нe-





тepmинaльнoFo sнaka I, нasыbaemoFo akcиomoй, Fдe A — нeтepmинaльный sнak, a α — koнeuнa пocлeдobaтeль- нocть тepmинaльныx и нeтepmинaльныx sнakob.


Дл oбosнaueни тepmob b пpabилax Fpammaтиkи бy- дem пoльsobaтьc oдинapныmи kabыukamи. Haпpиmep, 'x' osнauaeт тepm, cocтo щий иs oднoFo sнaka x. B cboю oue- peдь, пocлeдobaтeльнocт mи тepmинaльныx sнakob, нe sakлюueнныmи b oдинapныe kabыukи, oбosнauиm нeтep- mинaльныe sнakи Fpammaтиkи. Дл pasдeлeни нeтepmи- нaльныx sнakob meждy coбoй бyдem пoльsobaтьc пpoбe- лamи, дл ueFo saпpeтиm пo bлeниe пpoбeлa b oбosнaue- нии нeтepmинaльныx sнakob.
Kak oбыuнo, kaждomy нeтepmинaльнomy sнaky Fpam- maтиkи coпocтabиm нekoтopoe пoн тиe, нasыbaemoe нe- тepmинaльныm пoн тиem sыka, koтopoe дл kpaтkocти бyдem иmeнobaть пpocтo пoн тиem. ToFдa пpabилa bыbo- дa или пpeдлoжeни Fpammaтиkи moFyт быть интepпpe- тиpobaны kak cинтakcиueckиe пpabилa bыpaжeни пo- н тий b тekcтe.
Moд кonmeкcmnoǔ unmepnpemayueǔ тepma бyдem пoни- maть oпpeдeлeниe cemaнтиueckoFo sнaueни тepma пo eFo mecтy b тekcтe. B oбщem cлyuae oдин и тoт жe тepm moжeт быть coпocтabлeн pasлиuныm лekcemam, т. e. oднa и тa жe пocлeдobaтeльнocть тepmинaльныx sнakob moжeт cлy- жить нocитeлem pasлиuныx cmыcлob. Cлeдobaтeльнo, пpи koнтekcтнoй интepпpeтaции cemaнтиueckoe sнaue- ниe тepma b oбщem cлyuae oпpeдeл тьc okpyжaющиm eFo koнтekcтom.
Mpимep 1. Mycть b Fpammaтиke sыka иmeeтc дba пpabилa c тepmom 'x': C → A 'x' B и F → 'x' E, Fдe A, B, C, E и F — нeko- тopыe пoн ти , a sнak → pasдeл eт oпpeдeл emoe пoн тиe (cлeba) oт пoн тий и тepmob (cпpaba), иcпoльsyemыx дл eFo bыpaжeни b тekcтe. Takиm oбpasom, пoн тиe C oпpeдeл eтc пepbыm пpeдлoжeниem, a пoн тиe F — bтopыm. B cboю oue- peдь, Fдe-тo иmeютc пpeдлoжeни , oпpeдeл ющиe пoн ти A, B и E.
Aнaлиs пpиbeдeнныx пpeдлoжeний пokasыbaeт, uтo ecли тepm 'x' bcтpeтитc b okpyжeнии пocлeдobaтeльнocти тepmи- нaльныx sнakob, bыpaжaющиx пoн ти A и B, тo oн интep- пpeтиpyeтc kak лekcema x пepboFo пpeдлoжeни . B cboю oue- peдь, A 'x' B (kak и пopoждeннa b cooтbeтcтbии c нeй пocлe- дobaтeльнocть тepmob) bыpaжaeт пpиmep пoн ти C. Ecли тepm 'x' bcтpeтитc b koнтekcтe 'x' E, тo oн coпocтabл eтc c лekcemoй x bтopoFo пpeдлoжeни , a cooтbeтcтbyющa uacть тekcтa bыpaжaeт пpиmep пoн ти F. Ouebиднo, ecли ни oдин иs paspemeнныx koнтekcтob тepma 'x' нe pacпosнaн, тo Этo Fo- bopит oб omибke b тekcтe.♦
B дemoнcтpaциoнныx цeл x bыбepem b kauecтbe sы- ka, oпpeдeл emoFo cpeдcтbamи koнтekcтнoй тexнoлoFии,
sыk бyлebыx bыpaжeний, oпиcыbaemый oбospиmoй b pamkax нacтo щeй cтaтьи Fpammaтиkoй.
Mpимep k. Яsыk бyлebыx bыpaжeний saдaдиm cлeдyющeй Fpammaтиkoй:
Boolean → 'false' Boolean → 'true'
Boolean → "[A–Za–z][A–Za–z0–9]*"
Boolean → '(' Boolean ')' Boolean → 'not' Boolean
Boolean → Boolean 'and' Boolean Boolean → Boolean 'or' Boolean
Boolean → Boolean 'imp' Boolean,
Fдe нeтepmинaльный aлфabит cocтoит иs oднoFo пoн ти
Boolean (akcиoma Fpammaтиkи).
Haпpиmep, бyлebo bыpaжeниe '(not x or y) and z' пopoждaeт- c Этoй Fpammaтиkoй. Зameтиm, uтo тpeтьe пpeдлoжeниe saдaeт

cинтakcиc bыpaжeни пepemeнныx, oпpeдeлeнный нa sыke peFyл pныx bыpaжeний [l3], Fдe peFyл pнoe bыpaжeниe пpeд- cтabлeнo b bидe тepmинaльнoFo maблoнa и дл oтлиuи oт тepma sakлюueнo b дboйныe kabыukи. ♦





      1. ГpaMMaтнka MЯтaя3ыka

Memaязык koнтekcтнoй тexнoлoFии oпpeдeлиm пpи- beдeннoй нa pиcyнke Fpammaтиkoй, koтopa oпиcaнa c тouнocтью дo oбosнaueнныx kypcиbom нeтepmинaльныx sнakob notion, acpect и ctring. Oпиcыbaemый meтa sыk
bл eтc pasbитиem koнтekcтнoFo sыka иs paбoты [l4]. Tekcт пpoFpammы program cocтoит иs пocлeдoba- тeльнocти дeкnapayuǔ declaration и cumyayuǔ situation
(cтpoka 1 ). B дekлapaтиbнoй uacти (пocлeдobaтeльнocти
дekлapaций) oпpeдeл eтc sыk, нa koтopom b cитyaци- oннoй uacти oпиcыbaeтc pemeниe нekoтopoй пpиkлaд- нoй saдauи.
Oтдeльнa дekлapaци пpeдcтabл eт coбoй sakoнueн- ный фpaFmeнт oпpeдeлeни sыka, a cитyaци oпиcыba- eт pemeниe пpиkлaднoй saдauи пoлнocтью, ecли b paнee cлeдyющиx дekлapaци x oпpeдeл emый sыk saдaн пoл- нocтью, или uacтиuнo, koFдa sыk oпpeдeлeн b oбъeme нekoтopoFo cboeFo пoд sыka, yжe дocтaтouнoFo дл oпи- caни uacти pemeни .
Дekлapaтиbнa uacть cocтoит иs oпиcaний cyщнocтeй пpeдmeтнoй oблacти essence (cтpoka 2). Kaждoй cyщ- нocти пpиcbaиbaeтc иm notion нeтepmинaльнoFo пoн - ти oпpeдeл emoFo sыka, a camo пoн тиe saдaeтc kak нaxoд щeec b oтнomeнии aFpeFaции aggregation и oбoб- щeни generalization c cиcтemoй notions дpyFиx, paнee oп- peдeлeнныx пoн тий (cтpokи S—5). Дл pasдeлeни пo- н тий b cпиcke notions иcпoльsyeтc oдин или нeckoльko пpoбeлob space (cтpoka 17 ), a пpи иx oтcyтcтbии — пyc- тoй sнak empty, koтopый oпpeдeлeн kak oтcyтcтbиe ka- kиx-либo sнakob или kak пocлeдobaтeльнocть пpoбeлob (cтpoka 18).
Oпиcaниe любoй cyщнocти essence oднobpemeннo coдepжит ykasaниe kak нa oбoбщeниe, тak и нa aFpeFa- цию (cтpoka S). @oлee тoFo, любa cyщнocть moжeт быть oпpeдeлeнa c пomoщью Этиx и тoльko Этиx aбcтpakций (cтpoka S, пepboe пpabилo). Дл bыpaжeни пepekpecт- ныx и pekypcиbныx cb seй meждy cyщнocт mи иcпoль- syeтc иx пpeдbapитeльнoe oбъ bлeниe, koтopoe нe bkлюuaeт koнcтpykцию aggregation (cтpoka S, bтopoe пpa- bилo). Takиm oбpasom, oпиcaниe cyynocmu, b oтлиuиe oт oпиcaни cocтabл ющeFo eFo пoн ти , coдepжит oпpeдe- лeниe cyщecтbyющeFo дл нeFo oтнomeни oбoбщeни .
Kaждoe oпиcaниe description coдepжит пpeдлoжeниe sentence (cтpoka 7), cocтo щee иs пocлeдobaтeльнocти Элemeнтob item (cтpoka 8): иmeн пoн тий notion, лekcem lexeme и тekcтob komпил ции compilation (cтpoka 9). Лekcema bл eтc тepmинaльныm пoн тиem oпpeдeл e- moFo sыka. Дл bыpaжeни лekcem moFyт иcпoльsobaть- c kak тepmы term, тak и mнoжecтba тepmob, saдabaemыe нa sыke peFyл pныx bыpaжeний [l3] b bидe тepmинaль- ныx maблoнob pattern (cтpokи 1Q—12).
C kaждыm пpeдлoжeниem cb sыbaeтc oпpeдeл emoe nonяmue-peзynbmam, иmeнem koтopoFo нasbaнa oпиcы- baema cyщнocть (cтpoka S), oпpeдeл ema пpeдлoжeни- em пoлнocтью, koFдa бoльme нeт пpeдлoжeний c тem жe пoн тиem-pesyльтaтom, или uacтиuнo, ecли тakиe пpeд- лoжeни иmeютc (cтpokи 6 и 7).



Mopowдaю aя Fpaммaтииa мeтaяsыиa





Mpимep 3. Mpeдcтabиm Fpammaтиky иs пpиmepa 2 нa meтa-
sыke koнтekcтнoй тexнoлoFии b bидe дekлapaции cyщнocти
Boolean:
() Boolean
'false' {}
'true' {}
"[A–Za–z][A–Za–z0–9]*" {}
'(' Boolean ')' {} 'not' Boolean {}
Boolean 'and' Boolean {} Boolean 'or' Boolean {}
Boolean 'imp' Boolean {},
Fдe дл pasдeлeни cyщнocтeй, ecли иx нeckoльko, иcпoльso- baны пycтыe kpyFлыe ckoбkи koнcтpykции generalization, a дл pasдeлeни пpeдлoжeний bнyтpи oпpeдeлeни cyщнocти — пycтыe фиFypныe ckoбkи koнcтpykции semantics. Дл пpиbe- дeннoFo фpaFmeнтa пoн тийнoй moдeли moжeт быть saдaнa cитyaци , нaпpиmep, b bидe тekcтa '(not x or y) and z', bл ющe- Foc pemeниem нekoтopoй пpиkлaднoй saдauи, нaпpиmep, bы- uиcлeниem sнaueни бyлeboFo bыpaжeни .♦
Mo cboeй cyти пpeдлoжeниe sentence bл eтc пpeд- cтabлeниem пpabил Fpammaтиkи oпpeдeл emoFo sыka нa meтa sыke koнтekcтнoй тexнoлoFии c тem oтлиuиem, uтo дл saдaни ocoбeннocтeй komпил ции пpeдлoжeни иcпoльsyютc koнcтpykции compilation (cтpoka 19). Nx poль — ykasaниe komпил тopy cиcтemы koнтekcтнoFo пpoFpammиpobaни нa дeйcтbи , koтopыe нeoбxoдиmo bыпoлнить b пpoцecce pacпosнabaни пpeдлoжeни b тekcтe, нaпpиmep, пpobepky бoлee cлoжныx koнтekcтныx ycлobий, uem Этo saдaeтc cpeдcтbamи meтa sыka (koн- тekcтныm ycлobи m пocb щeн п. 2.6). Oпиcaниe cиcтemы koнтekcтнoFo пpoFpammиpobaни bыxoдит sa pamkи нa- cтo щeй cтaтьи, и koнcтpykци compilation бoлee дeтaль- нo нe paccmaтpиbaeтc .
Paccmoтpиm тeпepь cemaнтиky oпиcaни oтнomeний oбoбщeни и aFpeFaции. Ocтabmиec нepackpытыmи koнcтpykции meтa sыka и иx cemaнтиka бyдyт oпиcaны пosжe.



      1. ПOнятнйный aнaлн3

AбcтpaFиpobaниe пoн тий пpeдcтabл eт coбoй oc- нobнoй mexaниsm, c пomoщью koтopoFo ueлobek пosнaeт okpyжaющий mиp. A6cmpaкyuя — Этo bыдeлeниe cyщe- cтbeнныx пpиsнakob и cb seй пoн тий и иFнopиpobaниe нecyщecтbeнныx. AбcтpaFиpobaниe bл eтc ocнobныm meтoдиueckиm пpиemom пoн тийнoFo aнaлиsa и иcпoль- syeтc пpи paspaбoтke пoн тийнoй moдeли. AбcтpaFиpo- baниe пosboл eт дekomпosиpobaть пpeдmeтнyю oблacть нa sнauиmыe cyщнocти и пocтpoить ee пoн тийнyю cтpykтypy, aдekbaтнyю pemaemыm saдauam.
Monяmuǔnыǔ ananuз oпpeдeлиm kak meтoдиky пocтpo- eни пoн тийнoй cтpykтypы, ocнobaннyю нa aбcтpaFи- pobaнии пoн тий и ocyщecтbл emyю пyтem cpabнeни и coпocтabлeни cyщнocтeй пpeдmeтнoй oблacти c цeлью bы bлeни иx oбщиx пpиsнakob, bыдeлeни пoн тий, oбъeдинeни пoн тий нa ocнobe иx cxoдcтba или пoдo- би и т. п.
Mpимep 4. Дeтaлиsиpyem oпиcaниe sыka бyлebыx bыpaжe- ний bbeдeниem дoпoлнитeльныx пoн тий:
() Constant
'false' {}
'true' {} () Variable
"[A–Za–z][A–Za–z0-9]*" {}
() Logic
Variable {}
'(' Boolean ')' {}





() Negation


'not' Constant {} 'not' Logic {}
() Conjunction
Negation 'and' Negation {} () Disjunction
Conjunction 'or' Conjunction {} () Boolean
Disjunction 'imp' Disjunction {}
B paccmaтpиbaemom пpиmepe Constant oбosнauaeт пoн - тиe “лoFиuecka koнcтaнтa”, Variable — пoн тиe “пpoпosи- циoннa пepemeннa ”, a Logic — пoн тиe “лoFиueckoe sнaue- ниe”. Ocтaльныe пoн ти cooтbeтcтbyют бoлee cлoжныm пpeдcтabлeни m, пpabилa bыpaжeни koтopыx дekлapиpyют- c b пpиmepe: Negation oбosнauaeт пoн тиe “oтpицaниe”, Con- junction — пoн тиe “koнъюнkци ”, a Disjunction — пoн тиe “диsъюнkци ”.
Ouebиднo, нaибoлee cлoжныm пoн тиem bл eтc Boolean, oбosнauaющee пoн тиe “бyлebo bыpaжeниe”. Moн ти Con- stant, Logic, Negation, Conjunction и Disjunction bл ютc uacт- ныmи cлyua mи Boolean. Oднako bыpaжeниe Этиx uacтныx cлy- uaeb ocyщecтbл eтc пo-pasнomy, uтo и saдaeтc b bидe cooт- beтcтbyющиx пpeдлoжeний.♦
Ns пpиmepa bиднo, uтo иmeютc pasлиuныe bsaиmo- cb sи пoн тий, пo bл ющиec b pesyльтaтe иx aбcтpaFи- pobaни . Nsbecтны cлeдyющиe ocнobныe типы aбcтpak- ции [l5]: accoциaци , oбoбщeниe, типиsaци и aFpeFa- ци , пpиuem фyндameнтaльныmи bл ютc тoльko oбoбщeниe и aFpeFaци . Aбcтpakци типиsaции bл eтc uacтныm cлyuaem oбoбщeни , a aбcтpakци accoциaции Эkbиbaлeнтнa aбcтpakции aFpeFaции пo cпocoбy фopmи- pobaни [l6]. Paccmoтpиm cpeдcтba bыpaжeни oбoбщe- ни и aFpeFaции b пoн тийнoй moдeли, нe ocтaнabлиba cь нa ocoбeннocт x bыpaжeни uacтныx типob aбcтpakции.



      1. Aൾcтpakцня OൾOൾщЯння

a6o6yenue пoн тий — Этo фopma пopoждeни нoboFo пoн ти нa ocнobe oднoFo или нeckoльkиx пoдoбныx пo- н тий, koFдa пopoждaemoe пoн тиe coxpaн eт oбщиe пpиsнakи иcxoдныx пoн тий, нo иFнopиpyeт иx бoлee тoнkиe pasлиuи . Дл oбoбщeни bosmoжeн пpoтиboпo- лoжный пpoцecc, koFдa иcxoднoe пoн тиe дeлитc нa нe- ckoльko бoлee yskиx. Takoй пpoцecc нasыbaeтc cneyu- anuзayueǔ, или ospanunenuem пoн тий.
Cлeдobaтeльнo, пpи oбoбщeнии пoдoбныe bидobыe пoн ти cooтнoc тc c poдobыm, a пpи cпeциaлиsaции, нaoбopoт — poдobыe пoн ти дeл тc нa bидobыe.
Mpимep 5. Bыpasиm aбcтpakцию oбoбщeни b пoн тий- нoй moдeли иs Mpиmepa 4. B итoFe пoлyuиm:
() Constant
'false' {}
'true' {} () Variable
"[A–Za–z][A–Za–z0–9]*" {}
(Variable) Logic
Variable {}
'(' Boolean ')' {}
(Constant Logic) Negation 'not' Logic {}
'not' Constant {} (Negation) Conjunction
Negation 'and' Negation {} (Conjunction) Disjunction
Conjunction 'or' Conjunction {} (Disjunction) Boolean
Disjunction 'imp' Disjunction {}

Bиднo, uтo дл oпиcaни пoн ти Negation нeoбxoдиmo пoн тиe Logic и Constant, т. e. пoн тиe Negation пoлyueнo b pesyльтaтe oбoбщeни пoн тий Logic и Constant. B cboю oue- peдь, пoн ти Logic и Constant bл ютc koнkpeтиsaциeй пo- н ти Negation. Mocлeднee osнauaeт, любoe bыpaжeниe b тekc- тe пoн тий Logic или Constant bл eтc и bыpaжeниem нekoтo- poFo uacтнoFo cлyua oбoбщaющeFo пoн ти Negation.♦


Meтa sыk пoн тийнoй moдeли пosboл eт bыpasить пpoиsboльныe oбoбщeни (cтpokи S и 4). Mpи Этom meж- дy пoн ти mи ycтaнabлиbaeтc cb sь типa “ecть пoд- kлacc”. Ecли пoн ти bидoboFo ypobн cb saны oтнome- ниem oбoбщeни тoльko c oдниm пoн тиem poдoboFo ypobн , тo bosниkaeт дpebobиднa cтpykтypa oбoбщeни . B пpoтиbнom cлyuae иmeem нekoтopyю ceтebyю cтpykтypy. Дл ykasaни нa oтcyтcтbиe oбoбщeни y нekoтopoFo пo- н ти иcпoльsyютc пycтыe kpyFлыe ckoбkи (cтpoka 4). B Этom cлyuae пoн тиe cuитaeтc oбoбщeнныm oт пycтo- Fo или yниbepcaльнoFo пoн ти empty, oбosнauaemoFo kak '()'.
Oбoбщeниe нeckoльko пoxoжe нa нacлeдobaниe, иc- пoльsyemoe b oбъekтнo opиeнтиpobaнныx sыkax, нo k пocлeднemy нe cboдитc . Mpи bы bлeнии poдobыx пoн - тий oбoбщeниe ykasыbaeт нa eFo bидobыe cocтabл ющиe. Gтo пosboл eт пpи saдaнии poдobыx пoн тий нe пobтo- p ть oпиcaни eFo bидobыx peaлиsaций. B oбъekтнo opиeнтиpobaнныx sыkax бasobый (poдoboй) kлacc pe- aлиsyeт oбщиe cboйcтba и meтoды, koтopыe pacпpocт- paн ютc нa bce нacлeдyemыe (bидobыe) kлaccы. Oднa- ko бasobый kлacc тep eт пpи Этom sнaниe o cboиx bи- дobыx peaлиsaци x. Дл pemeни Этoй пpoблemы b oбъekтнo opиeнтиpobaнныx sыkax был bbeдeн mexa- ниsm bиpтyaльныx meтoдob.



      1. Aൾcтpakцня aгpЯгaцнн

Aspesayuя пoн тий иcпoльsyeтc b тex cлyua x, koFдa bнobь пopoждaemoe cлoжнoe пoн тиe bkлюuaeт иcxoд- ныe пoн ти b kauecтbe cboиx cocтabныx uacтeй. Aбcт- pakци aFpeFaции пosboл eт bыpasить cemaнтиky bнyт- peнниx cb seй, cyщecтbyющиx meждy oтдeльныmи cyщ- нocт mи пpeдmeтнoй oблacти. Mpи Этom cтpykтypa cлoжнoFo пoн ти packpыbaeтc пyтem eFo pacuлeнeни нa cobokyпнocть cocтabл ющиx eFo пoн тий. Mpoцecc, пpoтиboпoлoжный aFpeFaции, нasыbaeтc дeкomnoзuyueǔ.
AFpeFaци b пoн тийнoй moдeли bыpaжaeтc пpeдлo- жeни mи sentence, saдaющиe cb sь aFpeFиpyemыx пoн - тий c пoн тиem-pesyльтaтom (cтpokи 7 и 8, cm. pиcyнok). Koнcтpykци aggregation пosboл eт bыpasить aFpeFaцию oднoFo пoн ти или koFдa b kauecтbe aFpeFиpyemыx пo- н тий иcпoльsyeтc oднa или нeckoльko лekcem. Mo- cлeднee cooтbeтcтbyeт aFpeFaции бes пpeдbapитeльнoFo oбъ bлeни aFpeFиpyemыx пoн тий пyтem иx пp moFo (нeпocpeдcтbeннoFo) bыpaжeни b тekcтe. Takиm oбpa- som, лekcema moжeт paccmaтpиbaтьc kak mepmunanbnoe nonяmue, иmeющee пp moe (нeпocpeдcтbeннoe) bыpaжe- ниe b тekcтe пpoFpammы b bидe oднoй или нeckoльkиx тepmинaльныx cтpok.
Mpимep 6. Mpoдemoнcтpиpyem aFpeFaцию пoн тий нa пpи- mepe oпиcaни komплekcныx uиceл:
(Real) Complex
'(' Real ',' Real ')' {} Real '+' Real ‘i’ {}
Fдe Real — пoн тиe дeйcтbитeльнoFo uиcлa. Mpиbeдeнныe пpeдлoжeни oпpeдeл ют дba cпocoбa bыpaжeни komплekc- ныx uиceл kak cocтo щиx иs дbyx дeйcтbитeльныx, нaпpиmep

'(1, 2)' и '1 + 2i'. Зameтиm, uтo пoн тиe Complex oбoбщeнo oт пoн ти Real. Gтo пosboл eт komплekcныe uиcлa bыpaжaть дeйcтbитeльныmи. Haпpиmep, тepm '2' b cooтbeтcтbyющem koн- тekcтe moжeт быть интepпpeтиpobaн kak komплekcнoe uиcлo.♦ Aбcтpakци aFpeFaции пosboл eт koнcтpyиpobaть нo- bыe пoн ти нa ocнobe дpyFиx, paнee oпpeдeлeнныx, пpиuem bыпoлн ть тakoe koнcтpyиpobaниe b kaждom пpeдлoжeнии пo-cboemy. Mocлeднee oтлиuaeт aFpeFaцию b koнтekcтнoй тexнoлoFии oт aFpeFaции b oбъekтнo opи- eнтиpobaнныx sыkax, Fдe cлoжный kлacc koнcтpyиpy- eтc пyтem пpocтoFo и eдинcтbeннoFo пepeuиcлeни aF-


peFиpobaнныx b нeFo пoдkлaccob.
Takиm oбpasom, koнcтpykци essence (cтpoka S) пo- sboл eт paccmaтpиbaть aбcтpakции aFpeFaции и oбoбщe- ни b бoлee mиpokom cmыcлe, uem Этo oпpeдeлeнo и иc- пoльsobaнo b oбъekтнo opиeнтиpobaннoй тexнoлoFии пpoFpammиpobaни .

      1. KOнтЯkcтныЯ ycлObня

Nsbecтнo, uтo koнтekcтнo-cboбoдныe Fpammaтиkи нe oтpaжaют cинтakcиca cobpemeнныx sыkob пpoFpammи- pobaни . Gтo oбcтo тeльcтbo bыsbaнo тem, uтo Эти sыkи нe bл ютc koнтekcтнo-cboбoдныmи и иmeют бoлee cлoжнyю cинтakcиueckyю cтpykтypy [l7]. Cинтakcиue- ckиe пpabилa, koтopыe нe oпиcыbaютc koнтekcтнo-cbo- бoдныmи Fpammaтиkamи, нasыbaютc кonmeкcmnыmu yc- noвuяmu.
Mpobepky koнтekcтныx ycлobий cb sыbaют c cosдa- ниem и иcпoльsobaниem тepmинaльныx пoн тий sыka, koтopыe иmeют pasлиuнyю cemaнтиky. Зaдaua koнтekcт- нoFo aнaлиsa sakлюuaeтc b ycтaнobлeнии пpabильнocти иcпoльsobaни тakиx пoн тий, a нaибoлee uacтo pemae- ma saдaua cocтoит b oпpeдeлeнии cyщecтbobaни тep- mинaльнoFo пoн ти и cooтbeтcтbи eFo иcпoльsobaни oднomy иs bosmoжныx дл нeFo koнтekcтob.
Koнтekcтныe ycлobи b meтa sыke saдaютc дл иmeн пoн тий notion, иmeн acпekтob aspect и лekcem lexeme. Ha pиcyнke mecтa oпpeдeлeни koнтekcтныx ycлobий bыдeлeны kypcиbom.
Oпpeдeлeниe иmeни пoн ти notion kak тepmинaль- нoFo пoн ти meтa sыka ocyщecтbл eтc пpи oпиcaнии cyщнocти (cтpoka S). Mocлe тakoFo oпpeдeлeни иmeнa пoн тий notion moFyт пo bл тьc пpи oпиcaнии oбoбщe- ни b cпиcke notions (cтpokи 4 и 5) и b kauecтbe item пpи oпиcaнии пpeдлoжeний (cтpokи 8 и 9).
Nmeнa acпekтob acpect cлyжaт дл saдaни иmeн koн- cтpykций imperative (cтpoka 14), нasнaueниe koтopыx — saдaниe тoй или инoй cemaнтиueckoй интepпpeтaции фpaFmeнтa тekcтa phrase (cтpoka 16) пpи oпиcaнии иm- пepaтиbob (cтpoka 14), тekcтa komпил ции (cтpoka 19) и cитyaций (cтpoka 2Q). @oлee пoдpoбнo иmпepaтиbы и ac- пekты бyдyт paccmoтpeны b § 3.
Лekcemы lexeme b meтa sыke saдaютc b bидe тepmob term и maблoнob pattern (cтpoka 1Q). Kak тepm, тak и maб- лoн иcпoльsyютc дл saдaни тepmинaльныx пoн тий ctring oпpeдeл emыx b moдeли sыka (cтpokи 11 и 12). Mpиuem пocлeдниe coxpaн ютc нe b тaблицe идeнтифи- kaтopob, kak Этo былo дл пoн тий и acпekтob, a нeпo- cpeдcтbeннo b cтpykтype oпиcыbaemoFo пpeдлoжeни sentence (cтpokи 8 и 9).
B sakлюueниe sameтиm, uтo иmeнa пoн тий notion b- л ютc тepmинaльныmи пoн ти mи meтa sыka и oднo- bpemeннo нeтepmинaльныmи пoн ти mи oпpeдeл emoFo


sыka. Nmeнa acпekтob aspect, kak и иmeнa пoн тий no- tion, bл ютc тepmинaльныmи пoн ти mи дл meтa sы- ka, нo b oпpeдeл emom sыke acпekты интepпpeтиpyютc kak тepmинaльныe пoн ти . B cboю ouepeдь, лekcemы lexeme пpeдcтabл ютc тepmинaльныmи пoн ти mи ctring oпpeдeл emoFo sыka.



    1. CPEДCTBA oПNCAHNR CEMAHTNKN

Moд cemanmuкoǔ oбыuнo пoниmaeтc cmыcлoba или coдepжaтeльнa интepпpeтaци тekcтa, b тo bpem kak фopma пpeдcтabлeни или cтpykтypa тekcтa saдaютc eFo cинтakcиcom [l8]. B cboю ouepeдь, cemaнтиka sыkob oп- peдeл eтc cobokyпнocтью пpabил и coFлameний, ycтa- нabлиbaemыx oпиcaниem sыka и пpeднasнaueнныx дл bы bлeни cmыcлa тekcтob нa Этom sыke c цeлью иx ин- тepпpeтaции ueлobekom или abтomaтom [l9].


Mo xapakтepy cemaнтиkи moжнo bыдeлить дba нakлo- нeни : пobeлитeльнoe или umnepamuвnoe, пpeдcтabлeн- нoe oпepaтopamи (komaндamи, пpeдпиcaни mи), и иsъ - bитeльнoe или дeкnapamuвnoe, пpeдcтabлeннoe тoльko oпиcaни mи. B oдниx sыkax, нasыbaemыx иmпepaтиb- ныmи, пpeoблaдaeт oпиcaниe дeйcтbий, т. e. пpoцecca, пosboл ющeFo пoлyuить pesyльтaт ( sыkи FORTRAN, ALGOL, PASCAL, C, ADA и дp.). ДpyFиe sыkи, нasы- baemыe дekлapaтиbныmи, пpeдпoлaFaют нe пocтpoeниe (bыuиcлeниe) pesyльтaтa, a oпиcaниe (дekлapaцию) cboйcтb pemeни ; нa ocнobe Этиx дaнныx cиcтema пpo- Fpammиpobaни cama cтpoит нekoтopyю пocлeдobaтeль- нocть дeйcтbий, нeoбxoдиmyю дл пoлyueни pesyльтaтa ( sыkи PROLOG, LISP, и дp.).



      1. NMпЯpaтнbы

Cemaнтиky пpeдлoжeний пoн тийнoй moдeли бyдem saдabaть b bидe тekcтa, koтopый пocтpoeн пo пpabилam oпpeдeл emoFo sыka и bл eтc oпиcaниem pemeни нekoтopoй saдauи b acпekтe pasлиuныx пpoблemныx cи- тyaций. Дл ЭтoFo kaждoe пpeдлoжeниe sentence дoпoл- ниm oпиcaниem eFo cemaнтиkи semantics, koтopyю bыpa- sиm kak cobokyпнocть umnepamuвoв imperative (cтpokи 7 и 1S). Nmпepaтиb saдaeт cemanmunecкyα unmepnpemayuα пoн ти , peaлиsyemyю пocлe komпил ции пpeдлoжeни b bидe нekoтopoй пocлeдobaтeльнocти дeйcтbий, koтopyю cиcтema пpoFpammиpobaни bыпoлн eт bc kий pas, koFдa пoн тиe bыpaжaeтc Этиm пpeдлoжeниem (cтpoka 14).
Mpимep 7. Дл moдeли иs Mpиmepa 5 saдaдиm иmпepaти- bы, opиeнтиpobaнныe нa bыuиcлeниe бyлebыx bыpaжeний. Дл пpocтoты пoниmaни пpиmepa иmпepaтиbы oпpeдeлиm b bидe пocлeдobaтeльнocти accemблepныx komaнд дocтaтouнo pacпpocтpaнeннoй aппapaтнoй плaтфopmы нa бase пpoцecco- pa Intel [20].
() Variable
"[A–Za–z][A–Za–z0–9]*" { ... }
() Constant
'false' { mov eax, 0; push eax } 'true' { mov eax, –1; push eax }
(Variable) Logic
Variable { pop ebx; mov eax, [ebx]; push eax }
Integer { pop eax; cmp eax, 0; je label; mov eax, –1; label: push eax }
'(' Boolean ')' {}
(Constant Logic) Negation
'not' Logic { pop eax; not eax; push eax }

(Negation) Conjunction


Negation 'and' Negation { pop eax; pop edx; and eax, edx; push eax }
(Conjunction) Disjunction
Conjunction 'or' Conjunction { pop eax; pop edx; or eax, edx; push eax }
(Disjunction) Boolean
Disjunction 'imp' Disjunction {}
B пpиmepe дл дocтyпa k дaнныm и opFaниsaции иx bpe- meннoFo xpaнeни иcпoльsobaн aппapaтный cтek, a дл xpa- нeни пepemeнныx — пam ть пpoиsboльнoFo дocтyпa c ли- нeйнoй opFaниsaциeй. B пpeдлoжeнии "[A–Za–z][A–Za–z0–9]*" тekcт иmпepaтиba (нe пokasaн) oпиcыbaeт cosдaниe пepemeн- нoй, пyтem bkлюueни иmeни пepemeннoй b тaблицy идeнти- фиkaтopob и bыдeлeни дл ee xpaнeни пam ти тpeбyemoFo oбъema.
ЛoFиueckиe koнcтaнты 'false' и 'true' peaлиsobaны kak saнe- ceниe нyл и mинyc eдиницы нa bepmинy cтeka, дл ueFo иc- пoльsobaны komaнды saFpyskи b peFиcтp koнcтaнты и saпиcи peFиcтpa b cтek.
Mepemeннa oпpeдeлeнa aдpecom ueйkи пam ти, b koтo- poй xpaнитc ee тekyщee sнaueниe. Дл пoлyueни sнaueни лoFиueckoй пepemeннoй Variable ee aдpec иsbлekaeтc иs cтe- ka, coдepжиmoe aдpecyemoй ueйkи пepecылaeтc b peFиcтp, koтopый saтem coxpaн eтc b cтeke.
Дл пpeoбpasobaни цeлoFo uиcлa b бyлebo sнaueниe иc- пoльsobaнo пpeдлoжeниe () Logic Integer. Ecли uиcлo нa bep- mинe cтeka нe pabнo нyлю, тo b peFиcтp saпиcыbaeтc mинyc eдиницa, b пpoтиbнom cлyuae тam yжe иmeeтc тpeбyemoe sнa- ueниe. Pesyльтaт пpeoбpasobaни coxpaн eтc b cтeke.
B cboю ouepeдь, пpeдлoжeниe '(' Boolean ')' нe нyждaeтc b иmпepaтиbe, тak kak eFo poль sakлюuaeтc b saдaнии пpabил pasбopa и пpиopитeтa бyлeba bыpaжeни , sakлюueннoFo b kpyFлыe ckoбkи. Mpи иsmeнeнии pemaemoй saдauи bosmoжнo пo bлeниe иmпepaтиbob и y ЭтoFo пpeдлoжeни . Peaлиsaци ocтaльныx пpeдлoжeний нe bыsыbaeт тpyдa и пoн тнa иs тekc- тa пpиmepa.♦
B koнтekcтнoй тexнoлoFии иmпepaтиbы moFyт пpeд- cтabл тьc kak b bидe пocлeдobaтeльнocти komaнд цeлe- boй плaтфopmы, тak и пpoFpammoй нa нekoтopom цeлe- bom sыke пpoFpammиpobaни . Cиcтema koнтekcтнoFo пpoFpammиpobaни bыпoлн eт тpaнcл цию тekcтa иmпe- paтиba b koд цeлeboй плaтфopmы нeпocpeдcтbeннo или opFaниsyeт тakyю тpaнcл цию пyтem bыsoba cooтbeтcт- byющиx cpeдcтb цeлeboй cиcтemы пpoFpammиpobaни . Mpиuem b pamkax oднoFo иmпepaтиba тpeбyeтc тoльko oдин тип bыsoba: либo bыsob accemблepa цeлeboй плaт- фopmы, koтopый moжeт быть kak bнemниm, тak и bнyт- peнниm пo oтнomeнию k cиcтeme koнтekcтнoFo пpoFpam- mиpobaни , либo bыsob komпил тopa цeлeboй cиcтemы пpoFpammиpobaни , koтopый, kak пpabилo, bл eтc bнemниm. Mo cboeй cyти иmпepaтиbы пpeдcтabл ют co- бoй eдunuyы вызoвa цeлeboFo sыka, b тo bpem kak пpeд- лoжeниe — oпиcaниe cинтakcиca тakиx bыsobob.



      1. AcпЯkты

Moн тнo, uтo пoн тийнa cтpykтypa пpeдmeтнoй oб- лacти, пpeдcтabлeннa b дekлapaтиbнom oпиcaнии, mo- жeт быть oбщeй дл нeckoльkиx saдau. Oднako pemeниe тakиx saдau moжeт пpecлeдobaть pasлиuныe цeли, b тom uиcлe и bsaиmoиckлюuaющиe. Дл oтpaжeни Этoй cи- тyaции b koнтekcтнoй тexнoлoFии пpeдycmoтpeнa bos- moжнocть saдaни дл oднoFo пpeдлoжeни нeckoльkиx иmпepaтиbob imperative (cтpoka 1S) Дл oтлиuи oднoFo иmпepaтиba oт дpyFoFo oни иmeнyютc и saдaютc b bидe aspect {...}, Fдe aspect — иm oпpeдeл emoFo иmпepaтиba,

koтopый cooтbeтcтbyeт иmeнobaннoй cemaнтиueckoй ин- тepпpeтaции пoн ти или eFo acneкmy (cтpoka 14).


Mpимep 8. Paccmoтpиm интepпpeтaцию bыuиcлeни бyлe- bыx bыpaжeний, cb saннyю c дpyFиm koдиpobaниem бyлebыx sнaueний. B Mpиmepe 7 лoFиueckий нoль koдиpobaлc apиф- meтиueckиm нyлem, a лoFиuecka eдиницa mинyc eдиницeй. Oпpeдeлиm нobyю cemaнтиueckyю интepпpeтaцию moдeли или ee acпekт c иmeнem bit, koFдa лoFиuecka eдиницa koдиpyeтc apифmeтиueckoй eдиницeй.
() Variable
"[A–Za–z][A–Za–z0–9]*" { ... }
() Constant
'false' { ... }
'true' { ... } bit { mov eax, 1; push eax } (Variable) Logic
Variable { ... }
Integer { ... } bit { pop eax; and eax, 1; push eax } '(' Boolean ')' {}
(Constant Logic) Negation
'not' Constant { ... }
'not' Logic { ... } (Negation) Conjunction
Negation 'and' Negation { ... } (Conjunction) Disjunction
Conjunction 'or' Conjunction { ... } (Disjunction) Boolean
Disjunction 'imp' Disjunction { ... } ♦
Mpи иcпoльsobaнии иmeнobaнныx иmпepaтиbob, oп- peдeл emыx coдepжaтeльнoй пocтaнobkoй saдauи, cитy- aциoннoe oпиcaниe нeoбxoдиmo дoпoлнить ykasaниem нa oднy иs bosmoжныx eFo cemaнтиueckиx интepпpeтa- ций. B итoFe, cитyaциoннa uacть moдeли moжeт cтaть нesabиcиmoй oт coдepжaтeльнoй интepпpeтaции koнk- peтнoй пpиkлaднoй saдauи и saдabaть нekoтopoe oбщee pemeниe дл цeлoFo kлacca saдau.

      1. CЯMaнтнuЯckaя 3aMkнyтOcть

Дл oбecпeueни пoлнoты и цeлocтнocти пoн тий- нoй moдeли bo bcex ee uacт x (cитyaци , cemaнтиka, kom- пил ци ) цeлecooбpasнo тpeбobaть пpиmeнeни дekлa- pиpyemыx sыkobыx koнcтpykций нe тoльko дл oпиca- ни cитyaциoннoй uacти (text b cтpoke 2Q), нo и дл saдaни cemaнтиkи пpeдлoжeний (text b cтpoke 14), a тakжe дл oпиcaни пpoцecca komпил ции (text b cтpo- ke 19). Tem camыm бyдeт peaлиsobaнa cemaнтиuecka samkнyтocть oпиcaни , uтo пosboлит иcпoльsobaть дл oбpaбoтkи Этиx oпиcaний oдни и тe жe cpeдcтba.
Дaлee бyдem paccmaтpиbaть иmпepaтиbы kak тekcт text, cocтo щий иs фpas phrase (cтpoka 15), пocтpoeнный пo пpabилam, saдabaemыm b дekлapaции (cтpoka 16). Oue- bиднo, дл пpиb skи moдeли k цeлeboй плaтфopme нeoб- xoдиmo нekoтopoe mнoжecтbo пpeдлoжeний peaлиsobaть ниskoypobнebыmи cpeдcтbamи или нa цeлebom sыke.
Mpимep 9. Aнaлиs Mpиmepa 7 пokasыbaeт, uтo bce пpeдлo- жeни , kpome пocлeднeFo, peaлиsobaны ниskoypobнebыmи cpeдcтbamи. Mpиuem Этиx пpeдлoжeний yжe дocтaтouнo дл oпpeдeлeни cemaнтиkи пocлeднeFo пpeдлoжeни cpeдcтbamи camoй moдeли. Дл oпepaции иmплиkaции → cпpabeдлиbo
тoждecтbo a → b = a v b. Oтcюдa пoлyuaem:
(Disjunction) Boolean
Disjunction 'imp' Disjunction { not %1 or %2 },
Fдe %1 — интepпpeтиpyeтc kak oпepaнд, cooтbeтcтbyющий пepbomy пoн тию пpeдлoжeни (пepboe bxoждeниe Disjunc- tion), %2 — bтopomy.♦
Ns paccmoтpeннoFo пpиmepa cлeдyeт, uтo cemaнтиue- ckи samkнyтoe иmпepaтиbнoe oпиcaниe дoлжнo быть

пpeдcтabлeнo тekcтom, пocтpoeнныm пo пpabилam, oпpe- дeлeнныm b дekлapaтиbнoй uacти. @oлee тoFo, cemaнти- uecka интepпpeтaци ЭтoFo тekcтa дoлжнa cooтbeтcтbo- baть (пp mo или kocbeннo) пoн тию-pesyльтaтy. Mp - moe cooтbeтcтbиe osнauaeт, uтo тekcт иmпepaтиbнoй uacти bыpaжaeт пoн тиe-pesyльтaт нeпocpeдcтbeннo, a kocbeннoe — uтo пoн тиe, bыpaжeннoe тekcтom иmпe- paтиbнoFo oпиcaни , moжeт быть пpeoбpasobaнo b пo- н тиe-pesyльтaт нa ocнobe cb seй oбoбщeни или aFpe- Faции.


B cboю ouepeдь, тekcт komпил ции (cтpoka 19) и тekcт cитyaциoннoй uacти (cтpoka 2Q) ниkakoFo пoн ти нe bыpaжaют и, kak cлeдcтbиe ЭтoFo, иx pesyльтaт дoл- жeн cooтbeтcтbobaть oтcyтcтbyющemy пoн тию empty, oбosнauaemomy пycтыmи kpyFлыmи ckoбkamи (cтpoka 4).

ПpнMЯpы Oпнcaння cЯMaнтнkн


Ha дaнный momeнт нe cyщecтbyeт yниbepcaльнoFo, oбщeпpин тoFo meтoдa oпиcaни cemaнтиkи [l0]. Mepe- uиcлиm нaибoлee pacпpocтpaнeнныe meтoды. Дeнoтa- циoнный meтoд ocнobыbaeтc нa фyнkциoнaльныx bы- uиcлeни x, b koтopыx bcтpoeнныe oпepaции sыka oтo- бpaжaютc b oднosнauныe maтemaтиueckиe oбъekты, koтopыe saтem пpиmeн ютc дл oпиcaни cemaнтиkи
sыkobыx koнcтpykций. Akcиomaтиueckий meтoд бasи- pyeтc нa иcuиcлeнии пpeдиkaтob, Fдe pesyльтaт bыuиc- лeни oпиcыbaeтc uepes bsaиmocb sь пepemeнныx дo и пocлe пpиmeнeни koнcтpykций sыka. N, нakoнeц, b oпepaциoннom meтoдe oпepaции sыka oпиcыbaютc ue- pes komaнды нekoтopoй aбcтpakтнoй mamины.
Nsbecтнo нeckoльko пoдxoдob дл saдaни cemaнти- kи sыkob, oпиcыbaemыx koнтekcтнo-cboбoдныmи Fpam- maтиkamи: W-Fpammaтиkи, beнckий meтa sыk, akcиo- maтиueckий и дeнoтaциoнный meтoды, cинтakcиueckи yпpabл emыe cxemы, aтpибyтныe тpaнcлиpyющиe Fpam- maтиkи [2l].
Tak kak b pamkax koнтekcтнoй тexнoлoFии sa bлeн нekoтopый yниbepcaльный meтoд дл oпиcaни cemaн- тиkи sыkob пpoFpammиpobaни , пokaжem нa пpиmepax peaлиsaцию дbyx нaибoлee pacпpocтpaнeнныx пoдxo- дob: cинтakcиueckи yпpabл emыx cxem и aтpибyтныx Fpammaтиk.
Cинтakcиueckи yпpabл emыe cxemы [22] и aтpибyт- ныe Fpammaтиkи [l9] пosboл ют saдabaть cooтbeтcтbи meждy тekcтamи bxoднoFo и bыxoднoFo sыkob, нasыbae- mыe nepeвoдom. Takиe cooтbeтcтbи oтpaжaют cтpykтyp- ныe или cинтakcиueckиe cboйcтba bxoдныx и bыxoдныx тekcтob.
Mpимep 10. Paccmoтpиm пpиmep peaлиsaции b pamkax koн- тekcтнoй тexнoлoFии cинтakcиueckи yпpabл emoFo пepeboдa нa пpиmepe фopmaльнoFo диффepeнциpobaни bыpaжeний, bkлюuaющиx b ceб цeлouиcлeнныe koнcтaнты, пepemeннyю x, фyнkции sin и cos, a тakжe aлFeбpaиueckиe oпepaции: иsmeнe- ниe sнaka —, cлoжeниe +, bыuитaниe — и ymнoжeниe *.
Cb жem c kaждыm пpeдлoжeниem moдeли дba пepeboдa, фopmиpyemыe нeиmeнobaнныx иmпepaтиbom и иmeнobaнныm иmпepaтиbom dif. Heиmeнobaнный иmпepaтиb ykasыbaeт нa тo, uтo bыpaжeниe нe диффepeнциpyeтc , a иmeнobaнный иmпe- paтиb dif — uтo bыpaжeниe нeoбxoдиmo пpoдиффepeнциpo- baть. Фopmaльнa пpoиsboднa нekoтopoй cтpokи s — Этo dif{s}, Fдe dif{...} saдaeт иm cemaнтиueckoй интepпpeтaции тekcтa b фиFypныx ckoбkax. Mpoцecc пepeboдa oпиmem cлe- дyющeй дekлapaциeй:

(String) Expression


" [0–9]+ "
{ #1 } dif { ‘0’ }
'x'
{ 'x' } dif { '1' }
'(' Expression ')'
{ '(' & %1 & ')' } dif { '(' & dif { %1 } & ')' } 'sin' '(' Expression ')'
{ 'sin(' & %1 & ')' } dif { 'cos(' & %1 & ')*(' & dif { %1 } & ')' } 'cos' '(' Expression ')'
{ 'cos(' & %1 & ')' } dif { '–sin(' & %1 & ')*(' & dif { %1 } & ')' } ‘–’ Expression
{ '–' & %1 } dif { '–' & dif { %1 } } Expression '*' Expression
{ %1 & '*' & %2 } dif { '(' & %1 & '*' & dif { %2 } & '+' & dif {
%1 } & '*' & %2 & ')' }
Expression "+ | –" Expression
{ %1 & #1 & %2 } dif { '(' & dif { %1 } & #1 & dif { %2 } & ')' }, Fдe & — oпepaци koнkaтeнaции cтpok (oпpeдeлeнa пpи oпиca- нии String, b пpиmepe нe пokasaнo), #n — sapesepbиpobaнный cиmboл cинтakcиueckoFo aнaлиsaтopa, bosbpaщaющий cт po- ky, coпocтabлeннyю тepmинaльнomy maблoнy пpeдлoжeни c нomepom n, a %m — cиmboл, bosbpaщaющий cтpoky, cooтb eтcт- byющyю cyщнocти, oбosнaueннoй пoн тиem c нomepom m.
Tekcт cитyaциoннoй uacти 'dif{sin(5*cos(x))–x*x}', bkлюuaю- щий b ceб bыpaжeниe, koтopoe нeoбxoдиmo пpoдиффepeнци- pobaть, бyдeт пepebeдeн и пpeдcтabлeн b bидe cлeдyющeFo pe- syльтaтa
'(cos(5*cos(x))*(5*–sin(x)*(1)+0*cos(x)*(1))–(x*1+1*x)'.
B cлyuae нeoбxoдиmocти, moжнo oпpeдeлить иmeнobaнный иmпepaтиb equ, koтopый bыпoлнит ouebидныe тoждecт- beнныe пpeoбpasobaни bыpaжeний, пoлyuaemыx пocлe диф- фepeнциpobaни , нaпpиmep, пyтem saдaни cитyaци и 'equ{dif{sin(5*cos(x))–x*x}}'.♦
Peaлиsaци пepeboдa aтpибyтныmи Fpammaтиkamи coпp жeнa co sнauитeльныmи тpyднocт mи oпиcaни koнтekcтнo-sabиcиmыx ycлobий или cmыcлa koнcтpyk- ций sыkob пpoFpammиpobaни . Gти тpyднocти cb saны kak c camиm фopmaлиsmom, тak и c нekoтopыmи тexнo- лoFиueckиmи пpoблemamи [23]. K тpyднocт m пepboFo poдa moжнo oтнecти нeyпop дoueннocть пpoцecca bы- uиcлeни bыxoдныx aтpибyтob пpи жecтkoй yпop дo- ueннocти cинтakcиueckoFo aнaлиsa bxoднoFo тekcтa. Gтo нecooтbeтcтbиe тpeбyeт иckyccтbeнныx пpиemob дл иx coueтaни . TexнoлoFиueckиe тpyднocти oпpeдe- л ютc ниskoй Эффekтиbнocтью тpaнcл тopob, cFeнepи- pobaнныx c пomoщью aтpибyтныx cиcтem, uтo cb saнo c бoльmиm pacxoдom пam ти и нaлиuиem иckyccтbeнныx пpиemob итepaциoннoFo bыuиcлeни aтpибyтob.
Mpимep 11. Paccmoтpиm пpиmep peaлиsaции b koнтekcтнoй
тexнoлoFии тpaнcл ции тekcтoboFo пpeдcтabлeни uиcлa b фopmaтe c фиkcиpobaннoй saп тoй b eFo дboиuный Эkbиba- лeнт. Cemaнтиka тakoй saдauи тpaдициoннo oпиcыbaeтc aт- pибyтнoй Fpammaтиkoй.
Дл bыpaжeни uиcлa c фиkcиpobaннoй saп тoй Fixed bbe- дem дba дoпoлнитeльныx пoн ти : Integer (цeлa uacть) и Frac- tion (дpoбнa uacть). Moн тию Integer пpипиmem aтpибyт Int, pabный sнaueнию цeлoй uacти uиcлa, a пoн тию Fraction — aт- pибyт Frac, pabный дpoбнoй uacти. Aтpибyты coпocтabиm oбъ- ekтam-pesyльтaтam пpeдлoжeний, bыpaжaющиm cooтbeтcтbyю- щиe пoн ти :
(Arithmetic) Integer
"[0–9]" { #1 }
"[0–9]" Integer { %1 * 10 + #1 }
(Arithmetic) Fraction
"[0–9]" { #1 }
Fraction "[0–9]" { #1 + %1 / 10 } (Integer) Fixed
Integer '.' Fraction { %1 + %2 / 10 },

Fдe иcпoльsobaнo нe oпpeдeлeннoe b пpиmepe пoн тиe Arithme- tic. Mpи дekлapaции Arithmetic, ouebиднo, дoлжны быть oпpe- дeлeны apифmeтиueckиe oпepaции, koтopыe иcпoльsobaны b иmпepaтиbax.


Mo тepmинoлoFии aтpибyтныx Fpammaтиk aтpибyт Int bл - eтc cинтeтиueckиm, b тo bpem kak aтpибyт Frac — нacлeдye- mыm. B oтлиuиe oт aтpибyтныx Fpammaтиk, нe иmeющиx cpeдcтb saдaни пop дka bыuиcлeни aтpибyтob, пocлeдoba- тeльнocть bыuиcлeни oбъekтob b пpиmepe oпpeдeлeнa bыpa- sитeльныmи cpeдcтbamи camoй moдeли. Дл пpabильнoFo bы- uиcлeни cинтesиpyemoFo aтpибyтa пoн тиe Integer oпpeдeлe- нo kak пoдлeжaщee Fpammaтиueckomy pasбopy cлeba нaпpabo. B cboю ouepeдь, дл bыuиcлeни нacлeдyemoFo aтpибyтa пoн - тиe Fraction пoдbepFaeтc pasбopy cпpaba нaлebo.♦
Зameтиm, uтo b пoн тийнoй moдeли c kaждыm пoн - тиem иsнauaльнo accoцииpyeтc aтpибyт, cooтbeтcтbyю- щий oбosнauaemomy oбъekтy-pesyльтaтy. Mpи нeoбxoди- mocти, Эти oбъekты moжнo oпиcaть kak cocтabныe, т. e. coдepжaщиe тpeбyemoe uиcлo aтpибyтob.

3AKЛÐ4EHNE


Tpyднocти, cb saнныe c cosдaниem и coпpoboждeни- em cobpemeнныx инфopmaциoнныx cиcтem, b sнauитeль- нoй mepe oбъ cн ютc cemaнтиueckиm paspыbom, bosни- kaющиm meждy coдepжaтeльныmи пpeдcтabлeни mи o пpeдmeтнoй oблacти и pemaemыmи saдauamи и cpeдcтba- mи sыkob пpoFpammиpobaни , cлyжaщиmи дл pemeни Этиx saдau. Дл cokpaщeни cemaнтиueckoFo paspыba пpeдлaFaeтc пpиmeнeниe koнтekcтнoй тexнoлoFии пpoFpammиpobaни , ocнobaннoй нa пoн тийнom aнaли- se пpeдmeтнoй oблacти и koнтekcтнoй интepпpeтaции лekcem.


B koнтekcтнoй тexнoлoFии пoн тийный aнaлиs иc- пoльsyeтc дл bы bлeни пoн тийнoй cтpykтypы пpeдmeтнoй oблacти, oтpaжaemoй b пoн ти x cosдabae- moFo cпeциaлиsиpobaннoFo sыka. Koнтekcтнa интep- пpeтaци , b cboю ouepeдь, пosboл eт ecтecтbeнныm oб- pasom peaлиsobaть koнтekcтныe ycлobи дл cпeци- aлиsиpobaннoFo sыka и yлyumить eFo bыpasитeльныe bosmoжнocти.
Mpи иcпoльsobaнии cпeциaлиsиpobaннoFo sыka, co- sдabaemoFo пo koнтekcтнoй тexнoлoFии, oжидaeтc пoлy- ueниe бoлee пpocтыx и нaдeжныx пpoFpamm. Дл oцeнkи peaльныx yлyumeний и oпpeдeлeни пpeдпouтитeльныx oблacтeй пpиmeнeни цeлecooбpasны Эkcпepиmeнтaль- ныe иccлeдobaни .
B sakлюueниe ykaжem нa нekoтopыe пyблиkaции, Fдe пpиbeдeны нe bomeдmиe b нacтo щyю cтaтью oпиcaни ocoбeннocтeй koнтekcтнoй тexнoлoFии пpoFpammиpoba- ни . Tak, b дokлaдe [24] oпиcaн bыuиcлитeльный mexa- ниsm koнтekcтнoй тexнoлoFии и paccmoтpeн пpиmep бoлee cлoжнoй пpeдmeтнoй oблacти. B cтaтьe [25] coдepжитc oпиcaниe пpинципob koнтekcтнoFo пpoFpammиpobaни c иx пpиb skoй k bыuиcлитeльнoй moдeли. Paбoтa [26] пo- cb щeнa boпpocam cosдaни , xpaнeни и иcпoльsobaни sнaний, пpeдcтabлeнныx b bидe oтkomпилиpobaнныx пo- н тийныx moдeлeй, a тakжe coдepжит oпиcaниe aдpec- ныx cтpykтyp bыuиcлитeльнoFo mexaниsma koнтekcтнoй тexнoлoFии.

ЛNTEPATYPA


l. Mapкa Д. A., Maк-Ioyзn K. MeтoдoлoFи cтpykтypнoFo aнa- лиsa и пpoekтиpobaни . — M.: Meтa TexнoлoFи , l993.



  1. 7epemnыz G. B., Gemenoв N. a., Pynкun B. G. Cтpykтypный aнaлиs cиcтem: IDEF-тexнoлoFии. — M.: Финaнcы и cтa- тиcтиka, 200l.

  2. Kananяn A. H., Kanяnoв I. H. Cтpykтypныe moдeли биsнeca: DFD-тexнoлoFии. — M.: Финaнcы и cтaтиcтиka, 2003.

  3. Konnonu T., Бess K. @asы дaнныx: пpoekтиpobaниe, peaли- saци и coпpoboждeниe. Teopи и пpakтиka. — M.: Bиль-

mc, 2003.

  1. Meyer B. Object TechnoloJy: The Conceptual Perspective // Computer. — l996. — N l. — P. 86—88.

  2. Бyn I. Oбъekтнo-opиeнтиpobaннoe пpoekтиpobaниe c пpи- mepamи пpиmeнeни . — M.: Koнkopд, l992.

  3. Pam6o Д ., Бyn I., Æкo6con A. UML. Cпeциaльный cпpa- bouниk. — CMб.: Mитep, 2002.

  4. Aneкcanдpecкy A. Cobpemeннoe пpoekтиpobaниe нa C++: Oбoбщeннoe пpoFpammиpobaниe и пpиkлaдныe maблoны пpoekтиpobaни . — M.: Bиль mc, 2004.

  5. Bыzoвaney B. G. Koнтekcтнa тexнoлoFи пpoFpammиpoba- ни // Tpyды IV Meждyнap. нayu.-тexн. koнф. пo тeлekom- myниkaци m (Teлekom-99). — Oдecca, l999. — C. ll6—ll9.

l0. Kanmep P. Ocнobныe koнцeпции komпил тopob. — M.: Bиль mc, 2002.
ll. Iopcкuǔ Д. M. Boпpocы aбcтpakции и oбpasobaни пoн - тий. — M.: Nsд-bo AH CCCP, l96l.
l2. Peǔyopд-Gmum B. Teopи фopmaльныx sыkob. Bboдный kypc. — M.: Paдиo и cb sь, l988.
l3. KML Schema Part 2: Datatypes. W3C Recommendation (http://yyy.y3.orJ).
l4. Bыzoвaney B. G. Яsыk koнтekcтнoFo пpoFpammиpobaни
// Tes. дokл. 8-й meждyнap. koнфepeнции “Mpoблemы yп- pabлeни бesoпacнocтью cлoжныx cиcтem”. — M., 2000. — T. 2. — C. 89—9l.
l5. Maкemupoвanue, пpoekтиpobaниe и peaлиsaци диaлoFobыx инфopmaциoнныx cиcтem / Moд peд. E. N. Лomako. — M.: Финaнcы и cтaтиcтиka, l993.
l6. Iacкapoв Д. B. Nнтeллekтyaльныe инфopmaциoнныe cиcтe- mы. — M.: Bыcm. mk., 2003.
l7. Бpamnuкoв N. K. Cинтakcиc sыkob пpoFpammиpobaни . — M.: Hayka, l975и.
l8. Mepnuкoв B. N., Gaвunкoв B. M. Toлkobый cлobapь пo ин- фopmaтиke. — M.: Финaнcы и cтaтиcтиka, l99l.
l9. Knym Д. Cemaнтиka koнтekcтнo-cboбoдныx sыkob // Ce- maнтиka sыkob пpoFpammиpobaни . — M.; l980.
20. Hasypun N. N., Бepдыneв E. M. Mpoцeccopы cemeйcтba In- tel P6: Apxитekтypa, пpoFpammиpobaниe, интepфeйc: Cпp. M.: Fop ua лини — Teлekom, 2000.
2l. Mpamm T., ¥enкoвuy M. Яsыkи пpoFpammиpobaни : paspa- бoтka и peaлиsaци . — CMб.: Mитep, 2002.

  1. Azo A., Ynbman Д. Teopи cинтakcиueckoFo aнaлиsa, пepe- boдa и komпил ции. — M.: Mиp, l978.

  2. Бeздynnuǔ A. H., Kαmыǔ B. I., Gepe6pякoв B. A. Paspaбoтka komпил тopob b cиcтeme CYMEP. — M.: BЦ AH CCCP, l99l.

  3. Nocenкun B. Æ., Bыzoвaney B. G. Koнтekcтнa moдeль тex- нoлoFиueckoFo пpoцecca пpeдпpи ти // Tpyды II meждy- нap. koнф. “Nдeнтифиkaци cиcтem и saдauи yпpabлeни ” SICPRO'03. — M., 2003. — C. 859—87l.ц

  4. Nocenкun B. Æ. Koнтekcтнo-opиeнтиpobaннoe пpoFpammи- pobaниe // Nckyccтbeнный интeллekт. — 2004. — № 3. — C. 667—677.

  5. Bыzoвaney B. G., Nocenкun B. Æ. Komпил ци sнaний, пpeдcтabлeнныx нa sыke ESSE // Tes. дokл. 2-й Meждy- нap. koнф. пo пpoблemam yпpabлeни . — M., 2003. — T. 2. —

C. l65.
(Q95) 787-88-44
E-mail: Ryk@ipu.ru Д


Download 268.19 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling