Formālās valodas un gramatikas. Programmatūra un programmatūra Formalizētu programmēšanas valodu piemēri

Programmēšanas valoda- mākslīga (formāla) valoda, kas paredzēta programmu rakstīšanai izpildītājam (piemēram, datoram vai skaitliski vadāmai mašīnai). Programmēšanas valodu nosaka tās apraksts. Programmēšanas valodas apraksts ir dokuments, kas nosaka algoritmiskās valodas iespējas. Aprakstā parasti ir:

· pieļaujamo simbolu un pakalpojumu (atslēgas) vārdu alfabēts;

sintaktiskie noteikumi pieļaujamo valodas konstrukciju konstruēšanai no alfabēta;

semantika, kas izskaidro valodas konstrukciju nozīmi un mērķi.

Programmēšanas valodas tiek izmantotas, lai attēlotu problēmu risinājumu tādā formā, ka tās var izpildīt datorā.

Mašīnas valoda, kas sastāv no datora procesora instrukcijām, arī ir programmēšanas valoda. Bet mašīnvalodā rakstītus algoritmus ir grūti izlasīt pat programmētājam-izstrādātājam, turklāt darbam ar šādu valodu ir nepieciešamas zināšanas par konkrēta datora arhitektūru, tāpēc programmēšanā parasti tiek izmantotas augstākas valodas. līmenis tiek izmantots nekā mašīnvalodas. Augsta līmeņa valoda ir programmēšanas valoda, kuras jēdzieni un struktūra ir ērta cilvēka uztverei un nav atkarīga no konkrētā datora, kurā programma tiks izpildīta.

Lai programma, kas rakstīta augsta līmeņa programmēšanas valodā, tiktu izpildīta datorā, tā ir jātulko mašīnvalodā. Programmatūras rīku, kas veic šo funkciju, sauc par tulkotāju.

Tulkotājs ir programma, kas nolasa vienā valodā rakstītas programmas tekstu un pārtulko (pārtulko) to līdzvērtīgā tekstā citā valodā (parasti mašīnvalodā). Ir divi galvenie tulkotāju veidi: kompilatori un tulki.

Kompilators pārvērš avota programmas tekstu instrukciju komplektā noteikta veida procesoram (mašīnas kodam) un pēc tam ieraksta to izpildāmā failā (exe failā), ko var palaist kā atsevišķu programmu. Citiem vārdiem sakot, kompilators tulko programmu no augsta līmeņa valodas zema līmeņa valodā.

Tulks tulkošanas rezultātā veic avota programmā noteiktās darbības. Šajā gadījumā programma paliek avota valodā, un to nevar palaist izpildei bez tulka.

Sadalījums apkopotajās un tulkotajās valodās ir nedaudz patvaļīgs. Tātad jebkurai tradicionāli kompilētai valodai, piemēram, Pascal, var uzrakstīt tulku, un jebkurai tulkotai valodai var izveidot kompilatoru – piemēram, BASIC, oriģināli tulkots, var kompilēt bez jebkādiem ierobežojumiem.

Dažas valodas, piemēram, Java un C#, atrodas starp kompilēto un interpretēto. Proti, programma nav kompilēta mašīnvalodā, bet gan zema līmeņa no mašīnas neatkarīgā kodā, baitkodā. Pēc tam baitu kodu izpilda virtuālā mašīna. Lai izpildītu baitkodu, parasti tiek izmantota interpretācija. Šī pieeja savā ziņā ļauj izmantot gan tulku, gan kompilatoru priekšrocības.

Kopš pirmo programmējamo mašīnu radīšanas cilvēce ir nākusi klajā ar vairāk nekā divarpus tūkstošiem programmēšanas valodu. Programmēšanas valodu skaits nepārtraukti pieaug, lai gan šis process ir acīmredzami palēninājies. Dažas valodas lieto tikai neliels skaits programmētāju, citas kļūst zināmas miljoniem cilvēku. Daži no tiem ir ļoti specializēti (paredzēti noteiktas klases problēmu risināšanai), un daži ir universāli. Profesionāli programmētāji dažkārt savā darbā izmanto vairāk nekā duci dažādu programmēšanas valodu.

Programmēšanas valodas var klasificēt pēc vairākiem kritērijiem: uz mašīnu orientētas (montieriem) un no mašīnām neatkarīgas, specializētas un universālas.

Specializētās valodas ietver ART valodu ( A automātiski P ieprogrammēts T ools) ir pirmā specializētā programmēšanas valoda darbgaldiem ar ciparu vadību. Valodu 1956.–1959. gadā izstrādāja amerikāņu speciālistu grupa. matemātiķa Duglasa T. Rosa vadībā. COBOL valoda ( co mmon B lietderība - O režisēts L leņķis), kas radīts ASV Greisas Marejas Hoperes vadībā 1959. gadā, ir orientēts uz ekonomiskās informācijas apstrādi. Matemātiķe Grace Murray Hopper vadīja COBOL projektu ar kapteiņa otro pakāpi, vēlāk viņa kļuva par kontradmirāli. G.M. Hoperu sauc par COBOL "māti un vecmāmiņu".


(Greisa Mareja Hopere)

Mūsdienu tīmekļa programmēšanas valodas Perl un PHP var klasificēt arī kā specializētās valodas. Valodas Rapira, E-language (Krievija), SMR (Lielbritānija), LOGO (ASV) var klasificēt kā valodas, kas paredzētas programmēšanas mācīšanai.

Mūsdienās visizplatītākās universālās programmēšanas valodas ir C++, Delphi, Java, Pascal, Visual Basic, Python.

Bet, ņemot vērā programmēšanas valodas kā neatkarīgu izpētes objektu, tās ir iespējams klasificēt pēc valodas veidošanas koncepcijas.

Programmēšanas valodu klasifikācija

Programmēšanas valodas var iedalīt divās klasēs: procesuālajās un neprocedūrās. procesuāls (obligāti) valodas ir operatora tipa valodas. Algoritma aprakstam šajā valodā ir operatoru secības forma. Procedūru valodai raksturīgs ir piešķiršanas operatora klātbūtne (Basic, Pascal, C). Programma, kas rakstīta imperatīvā valodā, ir ļoti līdzīga rīkojumiem, kas izteikti imperatīvā noskaņojumā dabiskajās valodās, tas ir, tā ir komandu secība, kas datoram jāizpilda. Programmējot imperatīvā stilā, programmētājam jāpaskaidro datoram problēma ir jāatrisina.

Neprocedūras (deklaratīvs) valodas ir valodas, kuras izmantojot programma skaidri norāda, kādām īpašībām jābūt rezultātam, bet nepasaka, kā tas jāiegūst. Neprocedūras valodas ir sadalītas divās grupās: funkcionālajā un loģiskajā.

Deklaratīvas programmēšanas valodas ir augsta līmeņa programmēšanas valodas, kurās paziņojumi ir deklarācijas vai paziņojumi simboliskā loģikā. Tipisks šādu valodu piemērs ir loģiskās programmēšanas valodas (valodas, kuru pamatā ir noteikumu un faktu sistēma). Deklaratīvajām valodām raksturīga iezīme ir to deklaratīvā semantika. Deklaratīvas semantikas pamatjēdziens ir tāds, ka katra paziņojuma nozīme nav atkarīga no tā, kā šis apgalvojums tiek izmantots programmā. Deklaratīvā semantika ir daudz vienkāršāka nekā imperatīvo valodu semantika, ko var uzskatīt par deklaratīvo valodu priekšrocību salīdzinājumā ar imperatīvajām valodām.

Loģiskās valodas

Programmās loģiskās programmēšanas valodās atbilstošās darbības tiek veiktas tikai tad, ja ir nepieciešams pieļaujamais nosacījums jaunu faktu atvasināšanai no šiem faktiem pēc dotajiem loģiskajiem noteikumiem. Loģiskā programmēšana balstās uz matemātisko loģiku (sk. loģiskās operācijas. kvantori”, “Būla izteiksmes”).

Pirmā loģiskās programmēšanas valoda bija Planner valoda, ko 1969. gadā izstrādāja Karls Hjūits Masačūsetsas Tehnoloģiju institūta Mākslīgā intelekta laboratorijā. Šīs valodas pamatā bija iespēja automātiski iegūt (iegūt) rezultātu no datiem un sniegta. noteikumus, uzskaitot iespējas (kuru kopumu sauca par plānu) . Bet visslavenākā loģiskās programmēšanas valoda ir PROLOG (Prolog), kuru 1971. gadā Francijā Marseļas Universitātē izveidoja Alēns Kolmerauers.

Alēns Kolmero
(Alēns Kolmerauers)

Programma PROLOGUE satur divus komponentus: faktus un noteikumus. Fakti ir dati, ar kuriem programma darbojas, un faktu apkopojums veido PROLOG datu bāzi, kas būtībā ir relāciju datu bāze. Galvenā ar datiem veiktā darbība ir saskaņošanas darbība, ko sauc arī par apvienošanas vai saskaņošanas darbību. Noteikumi sastāv no virsraksta un apakšmērķiem. Programmā PROLOG rakstītas programmas izpilde sākas ar vaicājumu un sastāv no kāda loģiska apgalvojuma patiesuma pierādīšanas noteiktā faktu un noteikumu kopuma ietvaros. Šī pierādījuma algoritms (loģiskā secinājuma algoritms) nosaka PROLOGĀ rakstītas programmas izpildes principus.

Atšķirībā no programmām, kas rakstītas procesuālajās valodās, kas nosaka darbību secību, kas datoram jāveic, lai atrisinātu problēmu, PROLOG programmētājs apraksta faktus, noteikumus, attiecības starp tiem un vaicājumus par problēmu. Piemēram, pieņemsim, ka mums ir šādi fakti par to, kura ir kura māte:

māte ("Dasha", "Masha").

māte ("Nataša", "Dasha").

Turklāt ir noteikums, kas ievieš vecmāmiņas attiecības:

vecmāmiņa (X,Y):-

Tagad mēs varam uzdot jautājumus par to, kas ir šīs vai citas personas vecmāmiņa, vai kādas sievietes mazmeita (mazdēls):

vecmāmiņa ("Nataša", X).

PROLOG sistēma uz šo pieprasījumu sniegs atbildi šādi:

PROLOG valodas lietošanas iespējas ir ļoti plašas. Starp slavenākajiem ir pielietojumi simboliskajā matemātikā, plānošanā, datorizētā projektēšanā, ēku kompilatoros, datu bāzēs, tekstu apstrādē dabiskajās valodās. Bet, iespējams, raksturīgākais PROLOG pielietojums ir ekspertu sistēmas.

Mūsdienās ir vesela loģisko valodu klase; tādējādi no Planner valodas radās arī loģiskās programmēšanas valodas QA-4, Popler, Conniver un QLISP. Programmēšanas valodas Mercury, Visual Prolog, Oz un Fril ir cēlušās no Prolog.

Funkcionālās valodas

Pirmā funkcionālā tipa valoda ir LISP valoda, kas izveidota Masačūsetsas Tehnoloģiju institūtā 1956.–1959. Džons Makartijs, kurš 1956. gadā Dartmutas konferencē (ASV) pirmo reizi ierosināja terminu “mākslīgais intelekts”.

Džons Makartijs

Un, lai gan strīdi par šo terminu un tā ietvaros izstrādāto zinātnisko virzienu joprojām nerimst, pētnieki ir vienisprātis par funkcionālo un loģisko valodu izmantošanu šajā jomā. LISP ir ieviests ievērojams skaits darbu par mākslīgo intelektu.

Pēc tā parādīšanās LISP tika piešķirti daudzi epiteti, kas atspoguļo tā iezīmes: funkciju valoda, simboliskā valoda, saraksta apstrādes valoda, rekursīvā valoda. No mūsdienu klasifikācijas viedokļa LISP tiek definēta kā funkcionāla tipa programmēšanas valoda, kuras pamatā ir -calculus metode (-calculus metodi pagājušā gadsimta 30. gados izstrādāja A. Čērcis kā stingru matemātiskais modelis izskaitļojamām funkcijām, sk. "Algoritmu teorija").

Programma, kas rakstīta funkcionālā valodā, sastāv no nesakārtotas vienādojumu kopas, kas definē funkcijas un vērtības, kas tiek dotas kā citu vērtību funkcijas. LISP programmas un dati pastāv simbolisku izteiksmju veidā, kas tiek glabāti kā sarakstu struktūras. LISP nodarbojas ar divu veidu objektiem: atomi un sarakstus. Atomi ir simboli, ko izmanto objektu identificēšanai, kas var būt skaitļi vai simboli (jēdzieni, materiāli, cilvēki utt.). Saraksts ir nulles vai vairāku elementu secība, kas ievietota iekavās, un katrs no tiem ir vai nu atoms, vai saraksts. Ar sarakstiem tiek veiktas trīs primitīvas darbības: saraksta pirmā elementa izvilkšana; pārējā saraksta iegūšana pēc pirmā elementa noņemšanas; saraksta L pirmā elementa un pārējā saraksta Q apvienojums.

Programmu teksti tikai funkcionālās programmēšanas valodās aprakstīt problēmas risināšanas veidu, bet neparedz risināšanai darbību secību.

Par galvenajām funkcionālo programmēšanas valodu īpašībām parasti tiek uzskatītas šādas: īsums un vienkāršība; spēcīga mašīnrakstīšana; modularitāte; funkcijas - aprēķinu objekti; tīrība (bez blakusparādībām); aizkavēts (slinks) novērtējums.

Papildus LISP funkcionālās valodas ietver REFAL (60. gadu vidū izstrādāja V. F. Turčins Lomonosova Maskavas Valsts universitātē), Haskell, Clean, ML, OCaml, F#.

Sniegsim labi zināmā algoritma apraksta piemēru ātra šķirošana saraksts Haskell:

qsort (x:xs) = qsort elts_lt_x ++ [x]

Qsort elts_greq_x kur

elts_lt_x =

elts_greq_x =

Šeit teikts, ka tukšais saraksts jau ir sakārtots. Un netukša saraksta kārtošana sastāv no saraksta sadalīšanas trīs daļās: to elementu saraksts, kas ir mazāks par sākotnējā saraksta sākumpunktu, sākotnējā saraksta virsraksts ([x]) un saraksta gala elementu saraksts. sākotnējais saraksts ir lielāks vai vienāds ar x.

Objektorientētās valodas

Objektorientētās valodas ir valodas, kurās tradicionālajās programmēšanas sistēmās lietotie procedūru un datu jēdzieni tiek aizstāti ar jēdzienu “objekts” (skat. rakstu “ Objektorientētā programmēšana”). SmallTalk tiek uzskatīta par objektorientētās programmēšanas valodu tīrā veidā, objektorientētās programmēšanas iespējas ir noteiktas arī Java, C ++, Delphi.

Mūsdienu programmēšanas turpmākā attīstība ir saistīta ar tā saukto “paralēlo programmēšanu”. Lai ieviestu šo tehnoloģiju, tiek izstrādātas specializētas objektorientētas valodas. Šāda veida valoda ietver, piemēram, MC# ( mcsharp) ir augsta līmeņa objektorientēta programmēšanas valoda .NET platformai, kas atbalsta tādu programmu izveidi, kas darbojas izplatītā vidē ar asinhroniem izsaukumiem.

Programmēšanas valodas struktūra

Valodu veidošanas koncepcijā pastāv būtiskas atšķirības starp esošajām programmēšanas valodām, jo ​​īpaši tas attiecas uz iepriekšējām valodām, taču visas šīs valodas sauc par programmēšanas valodām, jo ​​tām ir vienāda formālā struktūra no viedokļa. ēkas iekšējās sistēmas.

Jebkura programmēšanas valoda sastāv no teikumiem (operatoriem). Teikumi (tāpat kā vārdi) tiek definēti, izmantojot kādu alfabētu C. Valodas sintakse apraksta teikumu kopu, izmantojot alfabētu C, kas ārēji attēlo labi izveidotas programmas.

Sintakse valoda ir šīs valodas vārdu un teikumu iegūšanas noteikumi. Sintakse ir shematiski aprakstīta, izmantojot noteiktus gramatikas noteikumus.

Formālās valodas zināšanas (alfabēts + sintakse), lai gan pietiekamas, lai izveidotu sintaktiskā pareizība programmu, taču nepietiek, lai saprastu tās mērķi un darbības veidu. Programmas nozīmi un darbības veidu programmēšanas valodā nosaka, norādot semantiku.

Valodas semantika ir formālās valodas vārdu interpretācijas noteikumi, t.i. atsevišķu valodas elementu nozīmes noteikšana.

Formālo valodu definēšanai, ieskaitot programmēšanas valodas, tiek izmantotas BNF (Backus-Naur formas) un sintakses diagrammas. Šie ir divi savstarpēji aizvietojami aprakstīšanas veidi.

Aprakstot programmēšanas valodu BNF izteiksmē, tiek izmantots šāds apzīmējums:

1) <..>- definēts vārds;

2) R - noteikums no sintakses vārdu veidošanai;

3) ::= - BNF noteikums.

Katrs R sastāv no gala vārdi vai žetonus valoda un, iespējams, šādas rakstzīmes:

· [..] - šis elements atrodas BNF;

· (..) - šo atgadījumu var izmantot BNF;

· (..)* - šo gadījumu BNF var izmantot ierobežotu skaitu reižu.

1. piemērs Sniegsim piemēru BNF noteikumam, kas definē veselu skaitli.

Šis noteikums tiek lasīts šādi: "Vesels skaitlis ir rakstzīme 0 vai rakstzīmju virkne, kas var sākties ar rakstzīmi "-", kam seko cipars, kas nav nulle, kam seko jebkura ierobežota ciparu secība.

Īpaša formālo valodu apraksta forma, līdzīga BNF, ir sintaktiskās diagrammas. Sintakses diagrammās tiek izmantoti trīs veidu elementi: ovāls/aplis, taisnstūris, bultiņas. Termināla vārdus vai leksēmas ievieto ovālos, definētos vārdus - taisnstūros. Valodas grafiskais attēlojums, izmantojot sintakses diagrammas, padara valodas aprakstu vizuālu.

2. piemērs. Vesela skaitļa aprakstīšana, izmantojot sintakses diagrammu.

Atbilstoši Paraugprogrammai ir nepieciešams, lai studenti iepazīstinātu ar moderno programmēšanas valodu klasifikāciju, kā arī orientētos katras no tām pielietošanas jomās. Vienkāršākais veids, kā prezentēt šo tēmu, ir pēc tam, kad jau ir notikusi detalizēta iepazīšanās ar kādu no programmēšanas valodām.

Jāpaskaidro, kāpēc rodas jaunas valodas un tiek uzlabotas vecās: pirmkārt, tas notiek, meklējot līdzekli, lai ātri rakstītu sarežģītas programmas, kurās arī nebija kļūdu. Ir zināms piemērs, kad 1974. gadā ASV Aizsardzības departamentā tika uzsākta ADA valodas (nosaukta pirmās sievietes programmētājas Adas Lavleisas, Bairona meitas vārdā) izveide. ASV militārpersonas ir sapratušas, ka viņi tērē daudz laika, pūļu un naudas, izstrādājot un uzturot iegultās datorsistēmas (piemēram, raķešu vadības sistēmas), un smalkas kļūdas programmēšanas valodās noved pie reālām katastrofām.

Pagājušā gadsimta 80. gadu beigās un 90. gadu sākumā deklaratīvās valodas bija ļoti populāras, tās sauca par mākslīgā intelekta programmēšanas valodām piektās paaudzes datoriem. Tomēr cerības uz to plašo izplatību vēl nav piepildījušās. Varbūt tāpēc, ka esošās funkcionālās un loģiskās programmēšanas sistēmas neļauj izveidot ātras programmas jēgpilnu uzdevumu veikšanai. Iespējams, ka viņu laiks vienkārši vēl nav pienācis.

Izvēloties tēmas “Algoritmizācija un programmēšana” mācīšanas stratēģiju, jāņem vērā, ka vispārizglītojošā kursa uzdevums lielā mērā ir noteikta domāšanas stila attīstīšana, vispārīgāko prasmju veidošanās, spējas un idejas, nevis noteiktu konkrētu valodu un tehnisko programmēšanas rīku izstrāde. Tajā pašā laikā šādam kursam vajadzētu kalpot par pamatu turpmākām profesionālajām programmēšanas studijām augstākajā izglītībā vai vidusskolā (kā daļa no profesionālās apmācības).

Pašlaik programmēšanas mācīšanai ir divas visizplatītākās pieejas:

1) mācības uz speciāli izstrādātas uz programmēšanas pamatiemaņu mācīšanu vērstas izglītības valodas valodas;

2) vienas vai vairāku programmēšanas valodu izpēte, ko praksē plaši izmanto zinātnisku un ekonomisku problēmu risināšanā (šādas valodas var saukt par standarta).

Pirmo pieeju bieži izmanto, mācot programmēšanas pamatus vidusskolās, izmantojot specializētas valodas, piemēram, Rapier, E-language, LOGO. Šajās valodās tiek ņemtas vērā pamatskolas skolēnu iespējas. Šī pieeja ir piemērota padziļinātai datorzinātņu apguvei 5.–6. klasē.

Attiecībā uz otro pieeju mēs varam teikt, ka lielākā daļa mūsdienu standartvalodu implementāciju ir piesātinātas ar daudzām tehniskām detaļām un ir grūti apgūstamas. Tomēr vispieņemamākā vispārizglītojošai skolai, kurā informātikas kurss tiek pasniegts 8.-11.klasē, ir programmēšanas teorētisko pamatu mācīšana uz standarta valodas. Šajā gadījumā nav nepieciešams iedziļināties valodas dziļumos. Studenti, kuriem tas interesē, to var izdarīt paši. Vislielākā uzmanība jāpievērš pārejai no algoritmiskām struktūrām uz to programmatūras ieviešanu programmēšanas valodā.

Šeit ir vērts atzīmēt, ka Pascal sākotnēji tika radīts kā izglītības valoda, taču laika gaitā tā kļuva plaši izplatīta kā standarta valoda un attīstījās kā objektorientēta valoda ar Delphi vizuālās programmēšanas tehnoloģiju. Pascal vai Basic var ņemt par pamatu kursam 8.–9. klasē, un kā paplašinātu (izvēles) kursu 10.–11. klasē, iepazīstināt studentus ar viņu objektorientētajiem paplašinājumiem (Delphi un Visual Basic). Katrai valodai ir savi atbalstītāji un pretinieki, un galīgā izvēle ir skolotāja ziņā.

Ir divas galvenās pieejas programmēšanas valodas apguvei: formāls un "Paraugprogrammēšana". Pirmā ir balstīta uz formālu (stingru) programmēšanas valodas konstrukciju aprakstu ( sintakse valoda un viņa semantika) vienā vai otrā veidā (ar sintaktisko diagrammu, metavalodas vai formāla verbālā apraksta, jo īpaši semantikas palīdzību) un problēmu risināšanā izmantojot tikai izpētītus un līdz ar to saprotamus valodas elementus. Otrajā pieejā studentiem vispirms tiek izsniegtas gatavas programmas, pastāstīts, ko tieši viņi dara, un tiek lūgts uzrakstīt līdzīgu programmu vai mainīt esošo, pilnībā neizskaidrojot vairākas “tehniskas” vai nebūtiskas, no skolotāja viedokļa, detaļas problēmas risināšanai. Tajā pašā laikā tiek teikts, ka atbilstošo konstrukciju precīzu nozīmi uzzināsiet vēlāk, bet pagaidām dariet to pašu. Otrā pieeja pieļauj tā saukto “ātro startu”, taču rada draudus iegūt puslappratīgus programmēšanas vides lietotājus, t.i. cilvēki, kuri savā praksē izmanto diezgan sarežģītas struktūras, bet nevar skaidri izskaidrot, kāpēc šajā vai citā gadījumā tās ir jāizmanto un kā tās darbojas. Tā rezultātā agrāk vai vēlāk šādi “programmētāji” saskaras ar kļūdām, kuras viņi vienkārši nespēj novērst - viņiem trūkst zināšanu.

Viens no skolu informātikas uzdevumiem ir mācīt tieši formālo pieeju, īpaši, pielietojot dažādas definīcijas. Un formāla programmēšanas valodas izpēte to veicina. Bet pat bez labiem piemēriem (paraugiem), mācot programmēšanu skolēniem, neiztikt. Un jo jaunāki ir skolēni, jo vairāk piemēru jāsniedz, aprakstot valodu (dažkārt pat ar tiem aizstājot stingru definīciju). Cita lieta, ka ir jānodrošina, lai piemēra apspriešanas rezultātā skolēniem būtu skaidras visas tā detaļas (jāpaskaidro, kā un kāpēc tas darbojas, tai skaitā paļaujoties uz jau izpētīto formālo materiālu). Šajā gadījumā spēcīgiem studentiem būs iespēja visu kārtīgi izprast un iegūtās zināšanas varēs izmantot turpmāk, savukārt pārējie apgūs specifiskas prasmes un atstās iespēju nepieciešamības gadījumā vēlāk atgriezties pie formālām definīcijām.

Par dzelzceļa valodu "Vilciens brauks garām Krasnije Zori platformai bez apstāšanās." Ņemiet vērā, ka vadītājs izmantoja lietvārdu "stop", nevis darbības vārdu "stop". Dzelzceļa darbiniekiem apstāšanās ir ļoti svarīgs jēdziens. Vilciens var "apstāties", bet ne "pieturas". Turchin [Turchin 2000], sniedzot līdzīgu piemēru, norāda uz šauriem profesionāliem mērķiem lietotās valodas formalizāciju.

Formalizētu valodu var definēt šādi [Turchin 2000]. Aplūkosim divstāvu realitātes valodas modeli (4. 4. att.). Situāciju si kodē valodas objekts Li. Objekts L1 ir si nosaukums. Pēc kāda laika situācija S1 tiek aizstāta ar situāciju S2. Veicot kādu valodas darbību, mēs pārveidojam L1 par citu objektu - L2. Ja mūsu modelis ir pareizs, tad L2 ir S2 nosaukums. Rezultātā, nezinot reālo situāciju S2, par to varam gūt priekšstatu, atkodējot valodas objektu L2. Veicot L1->L2 transformāciju, tiek noteikts, vai valoda tiks formalizēta.

    Formalizētai valodai transformāciju L1->L2 nosaka tikai un vienīgi valodas objekti Li, kas tajā piedalās un nav atkarīgi no valodas semantikā tiem atbilstošajiem valodas priekšstatiem si.

    Neformalizētai valodai lingvistiskā objekta Li transformācijas rezultāts ir atkarīgs ne tikai no paša Li reprezentācijas veida, bet arī no reprezentācijas si, ko tā ģenerē cilvēka galvā, no asociācijām, kurās tā nonāk.

Cilvēks spēj uztvert visneformalizētākās valodas. Un dators nesaprot, precīzāk, nevar izpildīt programmu neformālā valodā. Tāpēc svarīgu vietu programmēšanas izpētē vienmēr ieņem formālās algoritmiskās programmēšanas valodas,

Par neformālā formalizēšanu Neformalizētā formalizācija ir neformalizējams process. Lai gan loģiķi un militāristi cenšas ar to cīnīties.

Par mīlestības formulu Mīlestības formula nav piemērota formalizācijai. Labākajā gadījumā to var attēlot tikai kā ļoti aptuvenu modeli.

Modelēšanas valodas

Modelēšanas valoda - noteikumu kopums, kas nosaka modeļu konstruēšanu (īstenības vienkāršotu attēlojumu), ieskaitot to vizualizāciju un struktūras un uzvedības definīciju. Modelēšanas valoda ietver:

    modeļa elementi - modelēšanas pamatjēdzieni un to semantika;

    notācija - modelēšanas elementu vizuālais attēlojums;

    lietošanas rokasgrāmata - elementu izmantošanas noteikumi domēna modeļu veidošanas ietvaros.

Programmēšanas valodas un integrētās vides

    Pēc pirmās FRAMEWORK integrētās vides veidotāja domām, integrētā vide ir tāda lietojumprogramma, kuru lietotājs, palaižot to darba dienas sākumā, atrod tajā visus darbam nepieciešamos resursus un tāpēc neiziet no integrētās vidi līdz pašām darba dienas beigām. Protams, šī definīcija nav pārāk pareiza un zināmā mērā idealizē situāciju, taču tās vispārējā nozīme ir pietiekami skaidra. Integrēto vidi galvenā iezīme ir augsta interaktivitātes pakāpe. Tas tiek panākts, integrējot dažādus programmatūras resursus vienotā veselumā, tāpēc arī nosaukums. Tātad programmēšanas valodas kompilatora (programma, kas no šīs programmēšanas valodas teksta izveido izpildāmu programmu) integrētajā vidē parasti ir teksta redaktors un pats kompilators ar kompilācijas kļūdu diagnostikas sistēmu. Turklāt tam parasti ir arī atkļūdotājs – šīs valodas tulks, kas izpilda programmu rindiņu pa rindiņai un kuram ir vēl virkne īpašu funkciju. Viena no aktīvi attīstāmajām jomām, vizuālais dizains, pilnībā balstās uz integrētas vides iespēju izmantošanu. Lietotājs interaktīvi izvēlas savai programmai nepieciešamos programmēšanas valodas objektus un izveido saites starp tiem. Tādu valodu kā Visual BASIC (Microsoft), kā arī Object PASCAL (Delphi un Kylix, Borland vides) popularitāte nav nejauša. Pat nepieredzējis programmētājs, kurš nezina citas programmēšanas valodas, izņemot BASIC, un nekad nav programmējis operētājsistēmā Windows, divu vai trīs dienu laikā var izveidot lietojumprogrammu, kas darbojas operētājsistēmā Windows, izmantojot Visual BASIC. Bet augstas klases programmētājam, kurš iepriekš nav programmējis operētājsistēmā Windows, izmantojot C ++, bieži vien ir jāpavada nedēļas vai pat mēneši, lai izveidotu tādu pašu programmu. Tiesa, Visual BASIC ir vairāki būtiski ierobežojumi. Ar vizuālā noformējuma vidi palīdzību var izveidot ļoti sarežģītas programmas, uz tastatūras neievadot nevienu koda rindiņu. Tomēr visām programmām, kuru pamatā ir tradicionālās procesuālās programmēšanas valodas, ir viens un tas pats trūkums. Viņiem izpildāmais kods ir viena lieta, un programmas apstrādātie dati ir pavisam kas cits. Patiešām, programmas kods ir ietverts failā ar paplašinājumu EXE, un dati ir vai nu īpašos datu failos (parasti teksta vai binārā formā datora iekšējā attēlojumā), vai arī tiek ievadīti no tastatūras vai kāda cita ārējā ierīce. Un tagad uzdosim jautājumu: kā būtu, ja lietotājam ir jāsniedz izpildāmās programmas informācija, ko var uzskatīt par programmas teksta “papildinājumu”? Piemēram, mēs vēlamies, lai uz ekrāna tiktu uzbūvēts funkciju grafiks, un šādā programmā mēs nodrošinām visas nepieciešamās apkalpošanas iespējas. Taču funkcijas formula ir jāuzstāda pašam lietotājam, un iepriekš nav zināms, kāda tā būs. Ir pilnīgi skaidrs, ka šādus uzdevumus var atrisināt tikai ar tulku sistēmas palīdzību. Bet "par visu ir jāmaksā". Kompilators pārvērš programmas tekstu izpildāmā kodā, kas var darboties bez kompilatora programmas. Programmas, kas izveidotas, pamatojoties uz tulkošanas tipa valodām, var tikt izpildītas tikai tulku programmas kontrolē. Tie ir arī lēnāki nekā apkopotie, jo to interpretācija prasa papildu laiku. Tomēr daudzos gadījumos tas nav būtiski.

Izveidošanas datums: 1963 Ietekmēja: PROFT Rakstīt: neierakstīts Dialekti:

    Applesoft BASIC

    Commodore BASIC

    Microsoft BASIC

Īstenojumi un versijas:

  • Applesoft BASIC tulks Javascript valodā

    Atari Microsoft BASIC I/II

  • Commodore BASIC

    Galaxia BASIC

    Microsoft Visual Basic

  • Visual Basic lietojumprogrammām

BASIC (BASIC — saīsinājums no Beginner's All-purpose Symbolic Instruction Code — universāls simbolisku instrukciju kods iesācējiem; angļu basic — basic, basic) — augsta līmeņa programmēšanas valodu saime.

BASIC 1963. gadā izstrādāja Dartmutas koledžas profesori Džons Kemenijs un Tomass Kurcs, un viņu vadībā to ieviesa koledžas studentu komanda. Laika gaitā, kad sāka parādīties citi dialekti, šis "sākotnējais" dialekts kļuva pazīstams kā Dartmouth BASIC.

BASIC tika izstrādāts tā, lai studenti varētu rakstīt programmas, izmantojot laika dalīšanas termināļus. Tas tika izveidots kā risinājums problēmām, kas saistītas ar vecāku valodu sarežģītību, paredzētas "vienkāršākiem" lietotājiem, kurus ne tik daudz interesē programmu ātrums, bet vienkārši iespēja izmantot datoru savu problēmu risināšanai.

Valodas izstrādē tika izmantoti šādi astoņi principi:

    jābūt viegli lietojamam iesācējiem;

    jābūt vispārēja lietojuma programmēšanas valodai;

    nodrošināt iespēju paplašināt pieejamo funkcionalitāti pieredzējušiem programmētājiem;

    būt interaktīvam;

    nodrošināt skaidrus kļūdu ziņojumus;

    ātri strādāt ar mazām programmām;

    neprasa izpratni par aparatūras darbību;

    būt par starpnieku starp lietotāju un operētājsistēmu.

Valoda tika daļēji balstīta uz Fortran II un daļēji uz Algol-60, ar papildinājumiem, lai padarītu to piemērotu laika dalīšanai, teksta apstrādei un matricas aritmētikai. BASIC sākotnēji tika ieviests GE-265 ar atbalstu vairākiem termināļiem. Pretēji izplatītajam uzskatam, tās izveides laikā tā bija apkopota valoda. Valoda ieguva vispārēju popularitāti, kad tā parādījās mikrodatorā Altair 8800. Daudzas programmēšanas valodas bija pārāk apgrūtinošas, lai ietilptu mazā atmiņā. Iekārtām ar lēnu datu nesēju, piemēram, papīra lenti, audio kaseti un bez piemērota teksta redaktora, maza valoda, piemēram, BASIC, bija nelaime. 1975. gadā Microsoft (toreiz bija tikai divi - Bils Geitss un Pols Alens, piedaloties Monte Davidovam) izlaida Altair BASIC. Operētājsistēmai CP / M tika izveidots BASIC-80 dialekts, kas ilgu laiku noteica valodas attīstību. Šajā periodā tika izveidotas vairākas jaunas BASIC versijas. Microsoft pārdeva vairākas BASIC versijas operētājsistēmai MS-DOS/PC-DOS, tostarp BASICA, GWBASIC un Quick BASIC (QBASIC). Borland 1985. gadā izlaida Turbo BASIC 1.0 (tā pēcteci pēc tam pārdeva cits uzņēmums ar PowerBASIC nosaukumu). Mājas datoros parādījās dažādi BASIC paplašinājumi, kas parasti ietver rīkus darbam ar grafiku, skaņu, DOS komandu izpildi, kā arī strukturālās programmēšanas rīkus. Dažas citas valodas izmantoja labi zināmo BASIC sintakse kā pamatu, uz kura tika izveidota pilnīgi cita sistēma (skatiet, piemēram, GRASS). Tomēr, sākot ar 80. gadu beigām, jaunie datori kļuva daudz sarežģītāki un nodrošināja funkcijas (piemēram, grafisko lietotāja interfeisu), kas padarīja BASIC vairs ne tik ērtu programmēšanai. BASIC sāka zaudēt pozīcijas, neskatoties uz to, ka joprojām tika izmantots un pārdots liels skaits tā versiju. BASIC ieguva otro dzīvi līdz ar Microsoft Visual Basic parādīšanos. Tā ir kļuvusi par vienu no visvairāk izmantotajām valodām Microsoft Windows platformā. Vēlāk tika izveidots variants ar nosaukumu WordBasic, ko izmantoja programmā MS Word līdz Word 97 parādīšanās. Visual Basic for Applications (VBA) variants tika iebūvēts programmā Excel 5.0 1993. gadā, pēc tam programmā Access 95 1995. gadā, un pēc visiem citiem rīkiem, iekļauts Office paketē - 1997. gadā. Internet Explorer 3.0 un jaunākas versijas, kā arī Microsoft Outlook ietvēra VBScript valodas tulku. OpenOffice.org pakotnes pilnajā versijā ir iekļauts arī BASIC tulks.

Sveiki, pasaule!: piemērs QBasic 1.1, QuickBasic 4.50

DRUKĀT " Sveiki , Pasaule !"

Factorial: piemērs QBasic 1.1, QuickBasic 4.50

Tiek izmantota iteratīva faktoriāla definīcija. Aprēķinot 13! notiek aritmētiskā pārpilde, un šeit dažādu implementāciju uzvedība atšķiras: QBasic ziņo par pārpildīšanu, bet QuickBasic vienkārši izdrukā negatīvas vērtības. Turklāt komanda PRINT pēc noklusējuma izdrukā vienu atstarpi pirms un pēc skaitļa.

DIM f LING LONG f = 1 DRUKĀT "0 !="; f UZ i = 1 LĪDZ 16:

f = f*i:

PRINTi; "!="; f

FORMALIZĒTA VALODA- mākslīga zīmju sistēma, kas paredzēta kādas teorijas attēlošanai. Formalizēta valoda atšķiras no cilvēka saziņas un domāšanas dabiskajām (nacionālajām) valodām, no mākslīgajām valodām, piemēram, esperanto, no zinātnes "tehniskajām" valodām, kas apvieno noteiktas dabiskās daļas līdzekļus. valoda ar atbilstošajiem zinātniskajiem simboliem (ķīmijas valoda, parastās matemātikas valoda u.c.), no plkst. algoritmiskā valoda vispārējs programmēšanas veids utt. pirmkārt, ar to, ka tā uzdevums ir kalpot kā līdzeklis noteikta loģiskā satura fiksēšanai (formalizācijai), kas ļauj ieviest loģiskās sekas attiecības un pierādāmības jēdzienu (vai to analogus). Vēsturiski pirmā formalizētā valoda bija siloģisks Aristotelis, īstenots, izmantojot standartizētu dabiskās (grieķu) valodas fragmentu. Vispārējo formalizētās valodas ideju formulēja Leibnics (characteristica universalis), kurš paredzēja tās paplašināšanu līdz "secinājumu aprēķināšanai" - calculus ratiocinator. Mūsdienās, pamatojoties uz loģikas un algebras analoģiju, tika izstrādāti dažādi formalizētu valodu varianti. Pagrieziena punkts šeit bija darbs Morgana , Būla un viņu sekotāji, jo īpaši Šrēders un Poretskis . Mūsdienu formalizētās valodas — to visizplatītākajās formās — atgriežas pie darba. Frege "Begriffsschrift" - "Recording in Concepts" (1879), no kuras izriet galvenā propozicionālās loģikas valodas attīstības līnija un (to aptverot) (daudzvietīgo) predikātu loģika, kā arī šo loģisko pielietojums. lingvistiskie līdzekļi matemātikas pamatojuma problēmām.

Šādu formalizētu valodu raksturīgā struktūra: sākuma zīmju alfabēta piešķiršana, (labi veidotas) valodas formulas induktīva definīcija, t.s. veidošanās noteikumu noteikšana, secinājumu izdarīšanas noteikumu noteikšana, t.s. transformācijas noteikumi, kas saglabā izvēlēto formulu loģisko raksturlielumu (patiesību, pierādāmību utt.). Transformācijas noteikumu pievienošana formalizēto valodu pārvērš par loģisku aprēķinu. Ir daudz formalizēto valodu veidu: tās, pirmkārt, ir deduktīvi-aksiomātisko konstrukciju valodas, dabisku ("dabisku") secinājumu un secīgu konstrukciju sistēmas, analītiskās tabulas, "argumentu loģikas" sistēmas un daudzas citas.

Formalizētās valodas atšķiras ar savu loģisko spēku, no "klasiskajām" valodām (kurās pilnā spēkā ir aristoteļa identitātes, pretrunu un izslēgtā vidus likumi, kā arī loģiskās neskaidrības princips) un beidzot ar daudzām valodām. neklasiskās loģikas, kas ļauj vājināt noteiktus principus, ievieš formulu vai to modalitātes novērtējuma polisēmiju. Ir izstrādātas valodas, kurās vienā vai otrā nozīmē tiek samazināti loģiskie līdzekļi. Tādas ir minimālās un pozitīvās loģikas valodas vai propozicionālās loģikas valoda, kurā, piemēram, tiek izmantota viena loģiskā darbība. Šēfera insults (sk Loģiskie savienojumi ).

Formalizētās valodas parasti raksturo sintaktiskā un semantiskā ziņā. Bet pats būtiskākais ir viņa formulu loģiskā īpašība, ko saglabā secinājumu likumi (patiesība, pierādāmība, pārbaudāmība, varbūtība utt.). Jebkurai formalizētai valodai pamatproblēmas ir tajā izteiktās loģikas pilnība, tās izlemjamība un konsekvence; piemēram, klasiskā valoda propozicionālā loģika pilnīgs, atrisināms un konsekvents, un klasisks predikātu loģika (vairāki) lai gan pilnīgs, bet neatrisināms; paplašinātā predikātu aprēķina valoda - ar kvantoriem pēc predikātiem un neierobežotu abstrakcijas principa pielietojumu - ir pretrunīga (tāda bija Freges loģiski-aritmētiskā sistēma, kurā Rasels atklāja viņa vārdā nosaukto antinomiju).

Formalizēta valoda var būt "tīrā forma", t.i. nenest nekādu ekstraloģisku informāciju; ja tā to nes, tad kļūst par lietišķu formalizētu valodu, kuras specifika ir konstantu predikātu un terminu (aprakstu) klātbūtne - piemēram. aritmētika - atspoguļo pielietojuma apgabala īpašības. Lai formalizētu augsta abstrakcijas līmeņa teorijas, formalizēto valodu var modificēt, paplašināt vai "uzbūvēt" dažādos veidos; piemērs: klasiskā aprēķina formalizācija kā otrās kārtas aritmētika (t.i., ar kvantoriem pār predikātu mainīgajiem). Vairākos gadījumos formalizētā valodā ir daudzu – pat bezgala daudzu – secību loģiskās struktūras (piemēram, AA Markova “valodu tornis”, kas kalpo konstruktīvās matemātikas formalizēšanai vai modalitātes interpretācijai formā “iespējamo pasauļu” hierarhija). Formalizētās loģikas valodas semantiskā bāze var būt kopteorētiskā, algebriskā, varbūtības, spēļu teorētiskā utt. Var būt arī tādi tās “vājinājumi”, kas ir tikai līdzīgi varbūtības semantikai – tā, piemēram, rodas formalizēta “neskaidras loģikas” valoda (Zādes nozīmē). Tad valoda iegūst specifisku pragmatiku, ņemot vērā dzimtā runātāja faktoru (dodot vērtējumu par subjekta “piederības funkciju” šī jēdziena tvērumam). Šeit izpaužas šobrīd pieaugošā tendence vienā vai otrā veidā ņemt vērā "cilvēcisko faktoru" formalizētās valodās, kas skaidri izpaužas dažās kvantu mehānikas loģikas formalizētās valodās. Citā virzienā ir formalizētu valodu attīstība, kuru semantika nozīmē eksistenciālu pieņēmumu vai noteiktu ontoloģisko priekšnoteikumu noraidīšanu - noteikumu pieļaujamību ar bezgalīgu premisu skaitu, priekšmetu jomu "daudzveidību", pat pretrunīgu. tādi utt.

Formalizētas valodas neaizstājama iezīme ir secinājumu noteikumu "iespējama" interpretācija; piemēram, noteiktā solī mēs varam brīvi lietot vai neizmantot, teiksim, modus ponens noteikumu. Šai funkcijai ir liegtas algoritmiskās valodas, kurām ir "saprotošs" raksturs. Bet, attīstoties datorloģikai un attīstoties "aprakstošā" tipa programmām, šī atšķirība sāk izlīdzināties. Tādā pašā virzienā darbojas arī formalizētu valodu attīstība, kas vērsta uz heiristisku problēmu risināšanu.

Literatūra:

1. Baznīca A. Ievads matemātiskajā loģikā, 1. sēj. M., 1960;

2. Kleene S.K. Ievads metamatemātikā. M., 1957;

3. Karijs H. Matemātiskās loģikas pamati. M., 1969;

4. Freidentāls H. Loģikas valoda. M., 1969;

5. Smirnova E.D. Formalizētas valodas un loģiskās semantikas problēmas. M., 1982. gads.

FORMALIZĒTAS (FORTĀLĀS) VALODAS

SAPRAST

Formalizētā (formālā) valoda ir mākslīga valoda, ko raksturo precīzi noteikumi izteiksmju konstruēšanai un to izpratnei.

Formālā valoda ir veidota saskaņā ar skaidriem noteikumiem, nodrošinot konsekventu, precīzu un kompaktu pētāmās priekšmeta jomas (modelētu objektu) īpašību un attiecību attēlojumu.

Atšķirībā no dabiskajām valodām, formālajām valodām ir skaidri definēti lietoto zīmju semantiskās interpretācijas un sintaktiskās transformācijas noteikumi, kā arī tas, ka zīmju nozīme un nozīme nemainās atkarībā no jebkādiem pragmatiskiem apstākļiem (piemēram, konteksts).

Formālās valodas bieži tiek veidotas, pamatojoties uz matemātikas valodu.

Visā matemātikas attīstības vēsturē tajā plaši izmantoti dažādu objektu un jēdzienu simboliskie apzīmējumi. Taču līdzās simboliskiem apzīmējumiem matemātiķi brīvi lietoja arī dabisko valodu. Bet kādā zinātnes attīstības posmā (17. gadsimtā) radās nepieciešamība pēc stingras matemātisko spriedumu loģiskās analīzes, kā arī matemātikai svarīgā “pierādījuma” jēdziena precizēšanas. Izrādījās, ka šīs problēmas nav iespējams atrisināt bez stingras matemātisko teoriju formalizācijas. Bija nepieciešamība šīs teorijas izklāstīt formālā valodā. 20. gadsimtu var uzskatīt par dažādu formālo valodu straujas attīstības gadsimtu.

No datorzinātņu viedokļa formālajām valodām ir visnozīmīgākā loma starp formālajām valodām. loģikas valoda (loģikas algebras valoda) un programmēšanas valodas . Viņiem ir arī liela praktiska nozīme.

Visas formālās valodas ir kāda radītas konstrukcijas. Lielākā daļa no tiem ir uzbūvēti saskaņā ar šādu shēmu.

Pirmkārt, izvēlieties alfabēts , vai avota rakstzīmju kopa, no kuras tiks veidotas visas valodas izteiksmes. Tad tas ir aprakstīts sintakse valoda, tas ir, jēgpilnu izteicienu konstruēšanas noteikumi.

Tā kā jēdzienam "simbols" ir vairāku vērtību semantiskā slodze alfabēta zīmēm, biežāk tiek lietots termins "burts". Bet jāatceras, ka formālās valodas alfabēta burti var būt gan dabisko valodu alfabēta burti, gan iekavas, gan speciālās rakstzīmes utt.

No burtiem, saskaņā ar noteiktiem noteikumiem, jūs varat izgatavot vārdi un izteicieni .

Vienkāršākais noteikums ir tāds, ka jebkuru ierobežotu burtu secību var uzskatīt par vārdu. Patiesībā vārds ir vienkāršākais informācijas modelis(un tas, protams, ir konstruktīvs objekts).

1. PIEMĒRS

Viens no svarīgākajiem no datorzinātņu viedokļa ir alfabēts, kas sastāv no diviem burtiem “0”, “1”. Jebkura galīga nulles un vieninieku secība ir vārds šajā alfabētā.

Loģiski matemātiskajās valodās starp izteicieniem ir noteikumiem un formulas .

Thermae ir objektu nosaukumu analogi, to galvenais mērķis ir apzīmēt kādu objektu.

Termini galvenokārt ietver subjekta mainīgos un konstantes — izteiksmes, kas kalpo konkrētu objektu apzīmēšanai.

Sarežģītāki termini tiek veidoti no priekšmetu mainīgajiem un konstantēm saskaņā ar noteiktiem noteikumiem. Parasti šim nolūkam tiek izmantotas valodā atļautās funkcijas.

2. PIEMĒRS

Loģikā šādas funkcijas ir inversija (), konjunkcija (), disjunkcija (), implikācija () utt.

Terminu piemēri loģikas algebrā:

A; AB A; (AC).

Programmēšanas valodās, aritmētiskās operācijās, relāciju operācijās (,

Terminu piemēri Pascal programmēšanas valodā:

A; prog_1; ((A1+25)3*B) un (B0)); 2+sqrt(z*sin(b)).

Formulas

3. PIEMĒRS

Loģisko formulu piemēri:

(АС)  АС = 1; x((x)(x))

Programmu priekšrakstus programmēšanas valodā var saukt par formulām.

Pascal programmēšanas valodas "formulu" piemēri:

A:= 2+sqrt(Z*sin(B)); ja F3 tad rakstiet(R) else R:=sqr(F);

Formālā valodā jēgpilnus izteicienus iegūst tikai tad, ja tie ir noteikti noteikumi terminu un formulu veidošana, pārveidošana un “izpratne”. Šie noteikumi ietver:

    būvniecības noteikumi termini un formulas;

    interpretācijas noteikumi termini un formulas (valodas semantiskais aspekts);

    secinājumu noteikumi

Katrai formālajai valodai šo noteikumu kopumam jābūt stingri noteiktam, un jebkura no tiem pārveidošana visbiežāk noved pie jaunas šīs valodas šķirnes (dialekta) rašanās.

4. PIEMĒRS

Paskāla operators

ja F3 tad rakstiet(R) else R:=sqr(F);

interpretē saskaņā ar šādiem noteikumiem:

    mainīgais F var būt tikai vesela vai reāla tipa, un mainīgais R var būt tikai reālā tipa. Ja tas tā nav, tad paziņojums tiek uzskatīts par sintaktiski nepareizu un netiks izpildīts (tiks izdots sintakses kļūdas ziņojums);

    mainīgie (vienkāršākie termini) F un R ir iepriekš jādefinē, tas ir, šūnās ar šiem nosaukumiem jāsatur dažas atbilstošā tipa vērtības (dažām Pascal versijām šis noteikums nav iekļauts valodas sintaksē. Šajā gadījumā tiek atlasīta tā nulles un vieninieku secība , kas atrodas šūnās ar norādītām adresēm un tiek interpretēta kā decimālskaitlis);

    ja pēc atslēgvārda (rezervētā) vārda if izteiksmes (sarežģītais termins “F3”) vērtība ir “true”, tad tiek izpildīts aiz atslēgvārda tad esošais paziņojums (ekrānā tiek parādīta mainīgā F vērtība); ja tā vērtība ir “false”, tad tiek izpildīts operators, kas atrodas aiz atslēgvārda else (tiek aprēķināts mainīgā F vērtības kvadrāts un rezultāts tiek ievietots šūnā ar nosaukumu R).

Terminu un formulu atvasināšanas noteikumu klātbūtne formālās valodas sintaksē ļauj veikt izomorfās pārvērtības modeļi, kas veidoti uz šīs valodas bāzes. Tādējādi formālās valodas ne tikai atspoguļo (pārstāv) vienu vai otru jau esošo zināšanu kopumu, bet arī ir formalizācijas līdzekļišie zināšanas, ļaujot caur formālām transformācijām iegūt jaunas zināšanas. Turklāt, tā kā pārveidojumi var notikt tikai pēc stingriem formāliem noteikumiem, tad dotajai izomorfisku modeļu konstruēšana, kas dod jaunas zināšanas, var būt automatizēti. Šī iespēja tiek plaši izmantota datoru zināšanu bāzēs, ekspertu sistēmās, lēmumu atbalsta sistēmās.

Formālās valodas tiek plaši izmantotas zinātnē un tehnoloģijā. Zinātniskās izpētes un prakses procesā formālās valodas parasti tiek izmantotas ciešā saistībā ar dabisko valodu, jo pēdējai ir daudz lielākas izteiksmes spējas. Tajā pašā laikā formālā valoda ir līdzeklis precīzākai zināšanu atspoguļošanai nekā dabiskā valoda, un līdz ar to līdzeklis precīzākai un objektīvākai informācijas apmaiņai starp cilvēkiem.

ZINĀT

Formalizētā (formālā) valoda ir mākslīga valoda, ko raksturo precīzi izteicienu konstruēšanas un to interpretācijas (izpratnes) noteikumi.

Konstruējot formālu valodu, cilvēks izvēlas alfabēts , un ir aprakstīts sintakse valodu.

Alfabēts- sākuma rakstzīmju kopa, no kuras tiks veidotas visas valodas izteiksmes.

Izteicieni formālā valoda ir termini un formulas.

Galvenais mērķis terma - apzīmē kādu objektu.

Vienkāršākie termini ir objektu mainīgie un konstantes - izteicieni, kas kalpo konkrētu objektu apzīmēšanai.

Salikti termini tiek veidoti saskaņā ar noteiktiem noteikumiem, vienkāršiem terminiem piemērojot valodā atļautās funkcijas.

Formulas tiek veidoti no terminiem, kuriem tiek attiecināti valodā atļautie operatori.

Sintakse valoda — noteikumu kopums jēgpilnu izteicienu konstruēšanai — ietver:

    būvniecības noteikumi termini un formulas;

    interpretācijas noteikumi termini un formulas;

    secinājumu noteikumi dažas formulas un termini no citām formulām un terminiem.

Formālās valodas, piemēram, loģikas valoda un programmēšanas valodas .

Formālās valodas tiek plaši izmantotas zinātnē un tehnoloģijā. Tie ir līdzeklis precīzākai un objektīvākai informācijas apmaiņai starp cilvēkiem nekā dabiskā valoda.

Formālās valodas ne tikai atspoguļo (pārstāv) vienu vai otru jau esošo zināšanu kopumu, bet ir līdzeklis šo zināšanu formalizēšanai, kas ļauj iegūt jaunas zināšanas, izmantojot formālas transformācijas. Šī iespēja tiek plaši izmantota datoru zināšanu bāzēs, ekspertu sistēmās, lēmumu atbalsta sistēmās.

BŪT SPĒJĪGAM

1. VINGRINĀJUMS

Uzskaitiet, no kādiem burtiem sastāv jums zināmās programmēšanas valodas alfabēts un kādi noteikumi pastāv vienkāršu terminu veidošanai šajā valodā.

Ja šajā programmēšanas valodā ir rezervēti vārdi? Ja jā, lūdzu, sniedziet rezervēto un nerezervēto vārdu piemērus.

Ko programmēšanas valodās var uzskatīt par terminiem un formulām?

ATBILDE. Programmēšanas valodas alfabēts ietver visus simbolus, kurus var izmantot, rakstot programmas.

Programmēšanas valodas termini ir identifikatori, kā arī izteiksmes, kas veidotas no identifikatoriem, konstantēm, aritmētisko un loģisko darbību zīmēm, matemātiskām un citām (valodā definētām) funkcijām, iekavām.

Programmēšanas valodas formulas ir tajā atļautie operatori: ievade, izvade, piešķiršana, nosacījums, cilpa utt.

2. UZDEVUMS

Ja esat apguvis formālās loģikas pamatus, tad:

    sniedziet piemērus, kad loģisko formulu formālā transformācija ļauj iegūt jaunas zināšanas par pētāmajiem objektiem;

    interpretēt formulu: x ((x)  (x)) vai  (A  A) = 1

ATBILDE. 2) ir nepretrunu likums, kura būtība ir: neviens apgalvojums nevar būt vienlaikus patiess un nepatiess.

3. UZDEVUMS

Kāds ir decimālo skaitļu sistēmas alfabēts?

Kāds ir pamatnoteikums skaitļu veidošanai (reģistrēšanai) šajā pozicionālajā skaitļu sistēmā?

ATBILDE. Alfabēts: decimālskaitļi, decimālzīme (vai komats) un plusa un mīnusa zīmes. Noteikums: cipara svars skaitļā ir atkarīgs no tā atrašanās vietas skaitļa apzīmējumā.

4. UZDEVUMS

Kā binārā alfabēta vārdu “0100 1001 0100 0110” var interpretēt jums zināmā programmēšanas sistēmā (lasāmības labad tiek ievietotas atstarpes)?

ATBILDE. Paskālā šos divus baitus var interpretēt kā “IF” rakstzīmju virkni, kā divus tipa baita skaitļus - 73 un 70, kā vienu vesela skaitļa tipa numuru - 20758 (18758 ???).

5. UZDEVUMS

Windows sistēmas grafiskajā saskarnē ir tādi elementi kā piktogrammas vai ikonas. Vai varam pieņemt, ka tie ir iekļauti šīs sistēmas lietotāja interfeisa valodas alfabētā? Pamato atbildi.

PAPLAŠINĀT SAVU PERSPEKTĪVU

Formālajās valodās, tāpat kā nevienā citā, zīmes loma, saprotama vārda plašā nozīmē, ir liela. Dažus zīmju izmantošanas aspektus mēs apsvērām iepriekš, taču ir jēga par to runāt sīkāk.

Pazīmju parādīšanās iemesls ir diezgan acīmredzams: lielākā daļa izziņas un darbības objektu nav pieejami tiešai uztverei izziņas procesā un prezentācijai komunikācijas procesā.

Pierakstīties(gr.  - zīme, lat. transkripcija - semeion) ir materiāls objekts, kas darbojas kā kāda cita objekta, īpašuma vai attiecības pārstāvis un tiek izmantots, lai iegūtu, uzglabātu, apstrādātu un pārraidītu ziņojumus (informāciju). , zināšanas).

PIEZĪME 1. Vārda “zīme” vietā līdzīgā nozīmē tiek lietoti citi jēdzieni: “nosaukums”, “nosaukums”, “apzīmējums”.

Saskaņā ar viena no zīmju teorijas (semiotikas) veidotājiem C.P. Pierce definīciju, zīme- tas ir tāds elements x, kas priekšmetam aizstāj kādu elementu y (apzīmējumu) atbilstoši kādam atribūtam.

Respektīvi, apzīmēt- lūk, ko šī zīme nozīmē konkrētā situācijā.

Apzīmējums kāda lingvistiska abstrakta vienība (no latīņu valodas denoto - es apzīmēju) - objektu kopums, ko var saukt ar doto zīmi.

2. PIEZĪME. Vārda “apzīmējums” vietā loģikā tiek lietoti citi (identiski, sinonīmi) nosaukumi: visbiežāk “nozīme”, “apzīmēts”.

Savukārt katra zīme definē dažas tās apzīmētā objekta īpašības. Tiek saukta informācija, ko zīme satur par to, ko tā apzīmē koncepcija zīme (no lat. conceptus - jēdziens).

3. PIEZĪME. Terminam “jēdziens” ir sinonīmi: “nozīme”, “zīmes nozīme”.

PIEMĒRAM, vārdā “dzīvnieks” atrodam vārda “kuņģis” seno nozīmi – dzīvība. Dzīvnieki atšķiras nevis ar kuņģa klātbūtni, bet gan ar to, ka viņi ir dzīvi, tiem ir kuņģa dzīvība. Tātad apzīmējuma “dzīvnieks” jēdziens ir dzīvas būtnes jēdziens, detonācija ir jebkura konkrēta dzīva būtne, kas ir domāta noteiktā zīmes situācijā.

Pēc Pīrsa teiktā, visas zīmes ir sadalītas rādītājs , ikonisks un simboliska apzīmētāja un apzīmētā attiecību raksturs.

Indeksa attiecība starp apzīmētāju un apzīmējamo zīmē balstās uz to faktisko, pastāvošo līdzību. Šajā klasē ietilpst, piemēram, onomatopoētiskie vārdi vai ķīmisko savienojumu strukturālās formulas. Indeksa zīmes ir saistītas ar noteikto cēloņsakarību (piemēram, slapju jumtu klātbūtne liecina, ka ir lijis).

Ikoniska attieksme starp apzīmētāju un apzīmējamo, pēc K. Pīrsa domām, ir “vienkāršs vispārīgums kādas īpašības izteiksmē”. Zīmju kopēšana (ikoniskās zīmes) - reprodukcijas, reprodukcijas, kas ir līdzīgas norādītajai (piemēram, fotogrāfijas, pirkstu nospiedumi).

V simboliska zīme apzīmētājs un apzīmētais ir saistīti “neņemot vērā nekādu faktisko saistību” (piemēram, kādam objektam tiek piešķirta noteikta skaņu, burtu, figūru, krāsu, kustību utt. kombinācija.

Formālo valodu konstruēšanā tieši šāda veida zīmes ir svarīgas (skat. pirmās nodaļas rindkopu par formalizācijas galveno tēzi).

4. PIEZĪME Simboliskās rakstzīmes dažreiz tiek sauktas par simboliem . Saskaņā ar izcilā krievu filozofa P. A. Florenska ideju simbols ir “būtne, kas ir lielāka par sevi. Simbols- tas ir kaut kas tāds, kas nav pats par sevi, lielāks par to un tomēr būtībā izpaužas caur to. Piemēram, mītisks radījums grifs, kas apvieno lauvu un ērgli, ir viens no Jēzus Kristus simboliem.

Bieži gadās, ka zīme, kas vispirms parādījās kā ikoniska zīme, vēlāk kļūst par zīmi-simbolu.

PIEMĒRAM, burts  feniķiešu alfabētā tika saukts par "aleph" - vērsis (tas atgādina vērša galvu). Tad viņa bija ikoniska zīme. Grieķu valodā šis burts nav saistīts ar vērsi un kļūst par zīmi-simbolu.

Matemātiskajai simbolikai attīstoties, ikoniskas zīmes tiek aizstātas ar simboliem. Piemēram, romiešu cipars V atgādināja atvērtu roku (pieci pirksti), bet mūsdienu 5 ir simbols.

Zīmes astronomijā apzīmē attiecīgi planētu Venēru un Marsu, bet bioloģijā - sievieti un vīrieti. Šīs zīmes pēc izcelsmes ir ikoniskas. Pirmais no tiem ir stilizēts senlaicīgā spoguļa attēls, otrais ir vairogs ar šķēpu.

Denotācijas ne vienmēr ir reālās dzīves objekti un šādu objektu kolekcijas. Daudzi piemēri apzīmējumiem, kas nav realitātes objekti, ir ietverti labi zināmajā L. Kerola pasakā "Alise Brīnumzemē". Tas arī tēlaini formulē šādu apzīmējumu rašanās principu:

"Viņš dzīvoja, lai dzīvotu (Marts Zaķis - autora piezīme), bet lai būtu kaut kas, viņš nebija." Šajā sakarā krievu sakāmvārds “viņš dzīvoja un bija” nemaz nešķiet tautoloģija.

Zīmes uzbūvi raksturo tā sauktais “Frēžas trijstūris” (pēc izcilā vācu loģiķa vārda, kurš daudz darījis formālo valodu teorijas attīstībā). Citā terminoloģijā to sauc par “semantisko trīsstūri” vai Ogdena un Ričarda trīsstūri. Tā izveido saikni starp apzīmējumu, apzīmējuma apzīmējumu un apzīmējuma jēdzienu.

Rīsi. 4.3.1. Freges trīsstūris

Ar šī trīsstūra palīdzību var noskaidrot vairākus labi zināmus valodas efektus (zīmju situācijas).

1) Sinonīms- situācija, kas sastāv no dažādu zīmju nozīmju pilnīgas vai daļējas sakritības:

Rīsi. 4.3.2. Sinonīmu shēma

2) zīmēm var būt vienāds apzīmējums, bet dažādas nozīmes (denotatīvā identitāte). Piemēram, zīmēm “sin 30 °” un “1/2” ir vienāds apzīmējums, tas ir, tām ir viens un tas pats reālais skaitlis, taču šo zīmju nozīme ir atšķirīga:

Rīsi. 4.3.3. Denotatīvās identitātes shēma

3) Polisēmija(polisēmija) - zīmei ir vairāk nekā viena nozīme:

Rīsi. 4.3.4. Polisēmijas diagramma

INTERESANTS FAKTS

Vēstures atsauce

Pirmie soļi ceļā uz formālās loģikas valodas izveidi tika sperti senatnē. Aristotelis (384-322 BC) ieviesa burtu mainīgos lielumus vienkāršu kategorisku apgalvojumu subjektiem un predikātiem, bet stoiķu skolas vadītājs Krisips (ap 281-208 BC) un viņa skolēni - mainīgos lielumus apgalvojumiem kopumā. 16. gadsimtā R. Dekarts (1596-1659) radīja mūsdienu formālās matemātikas valodas pamatu - burtu algebru, G. V. Leibnics (1646-1716) pārcēla Dekarta simboliku uz loģiku. Galvenā loģikas valoda tajā laikā bija dabiskā valoda. Apzinoties dabiskās valodas būtiskos sintaktiskos un semantiskos trūkumus (apgrūtinājumu, izteicienu neskaidrību un neprecizitāti, izplūdušus sintaktiskos noteikumus u.c.), Leibnics formulēja tēzi, ka bez īpašas mākslīgās valodas - "universālā aprēķina" - izveides ir iespējama valodas tālāka attīstība. loģika nav iespējama. Taču tikai 19. gadsimta beigās Leibnica ideja tika attīstīta J. Būla (1815-1864), S. Dževonsa (1835-1882), E. Šrēdera (1841-1902) u.c. - parādījās loģikas algebra.

Loģikas valodas tālāka attīstība saistīta ar J.Pīno (1858-1932) un G.Frēges (1848-1925) vārdiem. Peano ieviesa vairākus mūsdienu matemātikā pieņemtus simbolus, jo īpaši “”, “”, “”, lai apzīmētu attiecīgi kopu piederības, savienības un krustpunkta attiecības. Frege izveidoja aksiomātisku priekšlikumu un predikātu aprēķinu, kas saturēja visus mūsdienu loģiskā aprēķina pamatelementus.

Pamatojoties uz Freges iegūtajiem rezultātiem un izmantojot modificēto Peano simboliku, B. Rasels (1872-1970) un AN Vaitheds (1861-1947) kopdarbā “Matemātikas principi” (1913) formulēja galvenos formālās normas noteikumus. loģikas valoda.

Šobrīd loģikas valodai ir nozīmīgs pielietojums datorzinātnēs, programmēšanas valodu, datoru programmatūras un dažādu tehnisko sistēmu izstrādē.

Programmēšanas valodu parādīšanās notiek XX gadsimta 50. gadu sākumā. Sākotnēji programmas tika izveidotas mašīnu instrukciju valodā un bija bināro kodu secības, kas no konsoles tika ievadītas datorā izpildei.

Pirmais solis programmēšanas valodu attīstībā bija mnemonisko (mnemonisko - atmiņas) apzīmējumu ieviešana komandām un datiem un mašīnprogrammas izveide, kas pārvērš šos mnemoniskos apzīmējumus mašīnkodos. Tādu programmu un līdz ar to arī apzīmējumu sistēmu izsauca montētājs .

Katram mašīnu veidam bija savs montētājs, un programmu pārsūtīšana no mašīnas uz iekārtu bija ļoti darbietilpīga procedūra. Tāpēc radās ideja izveidot no mašīnas neatkarīgu valodu. Šādas valodas sāka parādīties 1950. gadu vidū, un programma, kas tulkoja šīs valodas teikumus mašīnvalodā, kļuva pazīstama kā tulkotājs .

Ir vairāki tūkstoši programmēšanas valodu un to dialektu (šķirņu). Tos var klasificēt dažādos veidos. Daži autori sadala visas programmēšanas valodas procesuālajās un deklaratīvajās valodās. Procesuālajās valodās datu transformācija tiek norādīta, aprakstot ar tiem veikto darbību secību. Deklaratīvajās valodās datu transformācija tiek norādīta galvenokārt, aprakstot attiecības starp pašiem datiem. Saskaņā ar citu klasifikāciju programmēšanas valodas var iedalīt procesuālajās, funkcionālajās, loģiskajās un objektorientētajās. Tomēr jebkura klasifikācija ir nedaudz patvaļīga, jo, kā likums, lielākajā daļā programmēšanas valodu ir iekļautas dažādu veidu valodu iezīmes.

Programmēšanas valodu vidū īpašu vietu ieņem valodas, kas nodrošina datu bāzes pārvaldības sistēmu (DBVS) darbību. Bieži vien tajās tiek izdalītas divas apakšsistēmas: datu apraksta valoda un datu manipulācijas valoda (cits nosaukums ir vaicājumu valoda).

21. gadsimts ir laiks, kad informācijas iegūšana ir vissvarīgākā konkurences priekšrocība jebkurā jomā. Tomēr tas nedos nekādu labumu, ja tas nav izteikts valodā, kas ir saprotama tiem, kam tas paredzēts, vai ja nav tulkotāja, kas spēj nodot tā nozīmi adresātam.

Šobrīd uz Zemes dzīvo aptuveni 2000 cilvēku. Viņu atšķirīgā iezīme, pirmkārt, ir valoda.

Kopā ar sarunvalodu (dabisko) cilvēce ir radījusi daudzas mākslīgas valodas. Katrs no tiem ir paredzēts konkrētu problēmu risināšanai.

Šādas zīmju sistēmas ietver formālās valodas, kuru piemēri ir sniegti tālāk.

Definīcijas

Vispirms definēsim, kas ir valoda. Šo vārdu parasti saprot kā zīmju sistēmu, ko izmanto, lai izveidotu saziņu starp cilvēkiem un zināšanām.

Lielākajā daļā gan mākslīgo, gan dabisko valodu pamatā ir alfabēts.

Tā ir rakstzīmju kopa, ko izmanto vārdu un frāžu veidošanai.

Valodu raksturo:

  • izmantoto rakstzīmju kopa;
  • noteikumi “vārdu”, “frāžu” un “tekstu” sastādīšanai no tiem;
  • noteikumu kopums (sintaktiskais, pragmatiskais un semantisks) konstruēto konstrukciju lietošanai.

Dabisko valodu raksturojums

Kā jau minēts, visas valodas ir nosacīti sadalītas mākslīgajās un dabiskajās. Starp tām ir daudz atšķirību.

Sarunātās valodas ir dabiskas. To īpašības cita starpā ietver:

  • vairuma vārdu neskaidrība;
  • sinonīmu un homonīmu esamība;
  • vairāku nosaukumu klātbūtne vienam un tam pašam priekšmetam;
  • gandrīz visu noteikumu izņēmumu esamība.

Visas šīs īpašības ir galvenās atšķirības starp dabiskajām zīmju sistēmām un formālajām valodām. Neviennozīmīgu vārdu un apgalvojumu piemēri ir zināmi visiem. Tātad vārds "ēteris" atkarībā no konteksta var nozīmēt gan būtību, gan radio vai televīzijas apraidi.

Runāto valodu galvenās funkcijas ir:

  • komunikācija;
  • kognitīvā darbība;
  • emociju izpausme;
  • ietekme uz sarunu biedru (korespondentu, ja mēs runājam par saraksti).

Mākslīgo valodu raksturojums

Mākslīgās valodas rada cilvēki īpašiem nolūkiem vai noteiktām cilvēku grupām.

Viens no galvenajiem mākslīgo valodu raksturlielumiem ir nepārprotama to vārdu krājuma definīcija, kā arī noteikumi par to nozīmju piešķiršanu un izteicienu veidošanu.

Formālās valodas un gramatikas

Valoda, neatkarīgi no tā, vai tā ir dabiska vai mākslīga, var pastāvēt tikai tad, ja pastāv īpašu noteikumu kopums. Vienlaikus jānodrošina konsekvents, kompakts un precīzs pētāmās priekšmeta jomas attiecību un īpašību attēlojums. Ja tie ir strikti formulēti, tad saka, ka valoda. Programmēšanas valodas ir šādu zīmju sistēmu piemēri, lai gan, stingri runājot, tās drīzāk ieņem starpposmu (skatīt zemāk).

Formālo zīmju sistēmu izveides shēma ir šāda:

  • tiek izvēlēts alfabēts (sākotnējo simbolu kopa);
  • ir norādīti valodas izteiksmju (sintakses) konstruēšanas noteikumi.

Piemērošanas joma

Zinātniskās izpētes procesā tiek izmantota formālā loģika, programmēšana u.c. Tie ir labāki par dabiskajiem zināšanu atspoguļošanai un ir līdzeklis objektīvākai un precīzākai informācijas apmaiņai.

Formālās valodas ietver visas zināmās matemātisko un ķīmisko simbolu sistēmas, Morzes kodu, mūzikas apzīmējumus utt.

Turklāt tiek plaši izmantotas formālās programmēšanas valodas. To straujā attīstība sākās 20. gadsimta vidū saistībā ar datortehnoloģiju parādīšanos.

Formālā loģikas valoda

Jebkuras programmēšanas valodas pamatā ir matemātika. Tas savukārt balstās uz formālās loģikas zīmju sistēmu.

Kā zinātni loģiku radīja Aristotelis. Viņš arī izstrādāja noteikumus tādu apgalvojumu pārveidošanai, kuri saglabā savu patiesības vērtību neatkarīgi no šajos apgalvojumos ietverto jēdzienu satura.

Formālā loģika cīnās ar dabisko valodu "trūkumiem", kas saistīti ar dažu apgalvojumu neskaidrību utt. Šim nolūkam darbības ar domām tiek aizstātas ar darbībām ar formālas valodas pazīmēm. Tas novērš jebkādu nenoteiktību un ļauj precīzi noteikt apgalvojuma patiesumu.

Programmēšanas valodu iezīmes

Kā jau minēts, ar dažām atrunām tos var klasificēt kā formālus.

Ar pēdējiem tos vieno daudzi sintaktiskie likumi, bet ar dabiskajiem – daži atslēgvārdi un konstrukcijas.

Lai izveidotu programmēšanas valodu, ir jānosaka derīgo simbolu kopa un pareizās valodas programmas un katras pareizās programmas nozīme. Ja ar pirmo uzdevumu var tikt galā ar formalizāciju, tad pēdējā gadījumā šīs pieejas nedarbojas.

Derīgo rakstzīmju kopa programmēšanas valodās ir rakstzīmes, kuras var ievadīt no tastatūras. Tie ir ASCII kodēšanas tabulas pirmā daļa.

gramatikas

Programmēšanas valodām, tāpat kā jebkurai citai, ir gramatika. Šis termins tiek saprasts kā priekšlikumu sastādīšanas metodes apraksts. Gramatikas ir aprakstītas dažādos veidos. Programmēšanas valodu gadījumā tie ir noteikumi, kurus nosaka sakārtoti divu veidu rakstzīmju virkņu pāri: definējot sintaktiskās konstrukcijas un semantiskos ierobežojumus. Iestatot gramatikas, vispirms viņi formāli nosaka sintaktisko konstrukciju konstruēšanas noteikumus, bet pēc tam vienā no dabiskajām valodām nosaka semantiskos.

Noteikumi ir uzrakstīti grafiskā formā, izmantojot īpašas diagrammas. Sākotnēji šī pieeja tika izmantota, veidojot Pascal valodu. Tomēr pēc tam to sāka plaši izmantot citās.

Programmēšanas valodu klasifikācija

Šobrīd to kopā ar “dialektiem” ir vairāki tūkstoši. Tos klasificē kā procesuālos un deklaratīvos. Pirmā veida valodās datu pārveidošanu nosaka, aprakstot ar tiem veikto darbību secību, otrā veida - pēc attiecībām. Ir arī citas klasifikācijas. Piemēram, programmēšanas valodas ir sadalītas funkcionālajās, procesuālajās, objektorientētajās un loģiskajās. Ja jautājumam pieiet strikti, tad neviena klasifikācija nevar būt objektīva. Galu galā ievērojamai daļai programmēšanas valodu vienlaikus ir vairāku veidu formālu sistēmu iespējas. Laika gaitā malas, iespējams, vēl vairāk izplūdīs.

Tagad jūs varēsiet atbildēt uz jautājumu: "Kādas formālās valodas jūs zināt?". Zinātnieki turpina tos pilnveidot, lai būtu iespējams atrisināt dažādas praktiskas un teorētiskas problēmas, kas šobrīd tiek uzskatītas par neatrisināmām.

Vai jums ir jautājumi?

Ziņot par drukas kļūdu

Teksts, kas jānosūta mūsu redaktoriem: