border=0

Wegen om formele talen te beskriuwen

As al neamd wurdt, moat in metoade brûkt wurde om de objekt taal te beskriuwen. Mar de meta>natuerlik brûkt wurde om in meta-taal te beskriuwen. Sa wurdt om in formele taal op te bouwen, is it nedich om in metaalbeskriuwing te brûken mei natueraalmiddel en dan om in formele taal te beskriuwen troch in metoadige taal. Besykje twa opsjes foar it beskriuwen fan metaalgemeenten.

Ien fan 'e wiidferspraat metalen is bekend as de Backus-Naur-notaasje. Om skealjes yn 'e foarm fan Backus-Naur te foarmjen, wurde universele metacarpaten brûkt: { <,>, :: =, | }. De earste twa metacharacters wurde neamd "winkelklassen" - se servearje om it net-terminalen karakter te fertsjinjen. It symboal ":: =" lêst "by definition dêr"; it symboal "|" - "of". Yn sinen skreaun yn 'e Backus-Naur-foarm, in net-terminale symboal yn winkelklassen spilet de rol fan it beëinige objekt-taalkonstrukt. Yn 'e Backus-Naur-formules kinne terminal symboalen út it alfabet fan' e objekt-taal brûkt wurde, oars as de universale metacharacters. Terminalsymboalen fan in formele taal binne net beheind ta alles.

De beskriuwing fan in formele taal is boud út in folchoarder fan formulas, elk dêrfan yn it linkere diel befettet ien metacharakter dy't in beskate bou fan 'e objekt-taal oanbe>

In objekttaal kin folslein definiearre wurde yn 'e Backus-Naurfoarm, as in net-terminal terminalen kin fertsjintwurdige wurde troch in folchoarder fan terminalynsymboalen.

As foarbyld beskôgje de definysje fan 'e term "identifier", dy't brûkt wurdt yn in protte programmearrings. Yn natueraal is de definysje as folgjend: "In identifikaur is eltse ôfdieling fan brieven en nûmers dy't begjint mei in brief." Yn 'e foarm fan Bekusa-Naur sil it sa folgje:

<identifier> :: = <letter> / <identifier> <letter> / <identifier>

It wurdt sjoen dat yn 'e definysje fan dit konsept der rekkenens is, om't it begryp "identifier" troch himsels definiearre is. Elementary is in ien-letterkenner.

De deugd fan Backus-Naur-notysjes is dat se yn letterfoarm fertsjintwurdige binne; Notaat is ûngemaklik troch de unifoarmens fan manieren fan it bouwen fan sinnen fan 'e taal-objekt - de rekord draait om omslach en min omtinken te wêzen.

In soad mear fisueel moatte beskôge wurde as in oare manier om in formele taal te beskôgjen troch Niklas Wirth, de skepper fan 'e programmearring taal PASCAL, neamd "syntaksdiagrammen". In sytaksje diagram is in diagram (grafyske fertsjintwurdiging) fan 'e beskriuwing fan in net-terminal symboal fan in objektive taal. De sirkus hat altyd ien input en ien output. De eleminten fan it skema kinne terminal-symboalen wêze fan 'e objekt-taal dy't yn in sirkel (of ovale) of net-terminal-symboalen (begripen) fan' e objektspraat yn in rjochthoeke befetsje. De eleminten wurde yntegrearre troch rjochte rigels, wêrby't de opdracht fan objekten yn 'e oantsjutte non-terminalsymbol stiet.

De struktuer fan syntaksesbylden is identyk foar de struktueren fan programmearrings, wêrtroch it mooglik makket fan útwreide gebrûk fan diagrams foar oersetten fan oersetters fan ferskate talen. De earste taal dy't beskreaun is mei syntaksesbylden is PASCAL.

De diagram wurdt lêzen yn 'e rjochting fan' e pylken; By it oandielpunt kin elke rûte keazen wurde. Natueraal kin brûkt wurde as metoade; Programmingtalen binne boud op in Ingelske basisbasis. Terminal symboalen wurde letterlik oerskreaun. Net-terminalte symboalen kinne ekspresje wurde yn terminen of oare net-terminal - yn dit gefal, wurde spesifike diagrams makke foar har; Uteinlik moatte alle non-terminal-symboalen troch terminen útdrukt wurde. By it brûken fan syntaktyske diagrams wurdt de betingst akseptearre dat ûnder de terminalsymboalen fan 'e objekt-taal net itselde wêze sil, en gjin fan' e terminalsymbols as it begjin fan 'e oare kinne tsjinje. As dizze betinging ferplicht is, is in ungebrûklike lêzing fan it diagram mooglik en as resultaat de bou of erkenning fan in ferkearde bou fan 'e taal.

Lit ús in oantal foarbylden oanbiede fan it bouwen fan syntaktyske diagrams, de earste dy't de definysje fan 'e notysje "Identifier" wêze sil foar fergeliking mei de bekendste bekendheid fan Bekus-Naur.

Ferplichte ferklearjende charts:

Foarbylden fan it meitsjen fan Ingelsk identifiers neffens dit skema binne: q, in 123, identificator, e2e4.

It skema omfettet de algemiene werjefte fan it PASCAL- programma saek:

As foarbylden fan prescriptions, beskôgje de bedoeling en siklik.

Yn oerienstimming mei dizze en fergelykbere diagrams binne akseptabele syntaktyske konstruksjes fan 'e taal oanlein.

De Backus-Naur-skriuwers en syntaksjes binne ek twa alternative manieren om de struktueren fan 'e meta-taal te beskriuwen, mei help fan in formele taal boud. Nei't de formele grammatika oanlein is en de taal dy't dêrmei generearre wurdt, kin brûkt wurde om tapastlike problemen te pleatsen - kommunikaasje, opslach en ferwurking fan ynformaasje. De lêste klasse fan taken liedt ta de needsaak fan formulaasje mei de talen fan de ynformaasjeferwurkingsferfier, d. algoritme, en har presintaasje yn in foarm dy't begrepen wurde kin en útfierd wurde troch de persoan of technysk apparaat dat de ferwurking dien wurdt.





Sjoch ek:

Klassifikaasje fan gegevens. Data presintaasje problemen

It effekt fan lûd op 'e kanaalbandbreedte

Seksje 2. ALGORITHMS. MODELS. SYSTEMS

Foarbyld 4.14

Rekursive funksjes

Gean werom nei Tafel Ynhâld: Teoretyske Stiftingen fan Computer Science

2019 @ edudocs.fun