Скачиваний:
12
Добавлен:
01.05.2014
Размер:
6.57 Кб
Скачать
#Љ®¬ЇЁ«пв®а п§лЄ  C-light(Ї®¤Є« бб C)

(c) Copyright 2001, MK-Soft & SLabs
Ђўв®а: ЊЁе Ё« Љ®«Ґб­ЁЄ®ў (830508)
ЂбЁб⥭в: Ђ«ҐЄбҐ© ‘¬Ёа­®ў (8305xx)

Ђ«мд -вҐбвҐа: ЊЁе Ё« Љ®«Ґб­ЁЄ®ў
ЃҐв -вҐбвҐа: Ђ«ҐЄбҐ© ‘¬Ёа­®ў


:::‘ЇҐжЁдЁЄ жЁп п§лЄ  C-light (ЃЌ”):

*** ’ЁЇл:

int - 楫®Ґ зЁб«® [-32768, +32767]
float - [ (3.4 * (10**-38) , 3.4 * (10**+38) ]
fmatr - вЁЇ ўҐйҐб⢥­­ле ¬ ваЁж


<Ё¤Ґ­вЁдЁЄ в®а> = id
<楫®Ґ_зЁб«®> = num
<ўҐйҐб⢥­­®Ґ зЁб«®> = fnum

<Ё¤Ґ­вЁдЁЄ в®а>::= <ЎгЄў ><Їа®¤®«¦Ґ­ЁҐ>
<Їа®¤®«¦Ґ­ЁҐ>::= <Їа®¤®«¦Ґ­ЁҐ><ЎгЄў >
| <Їа®¤®«¦Ґ­ЁҐ><жЁда >
| <ЎгЄў >
| <жЁда >
<ЎгЄў >::= A..Z a..z _
<жЁда >::= 0..9

Њ ЄбЁ¬ «м­л© а §¬Ґа Ё¤Ґ­вЁдЁЄ в®а  32

<楫®Ґ_зЁб«®>::= + <®Є®­з ­ЁҐ>
| - <®Є®­з ­ЁҐ>
| <®Є®­з ­ЁҐ>
<®Є®­з ­ЁҐ>::= <®Є®­з ­ЁҐ> <жЁда >
| <жЁда >

<ўҐйҐб⢥­­®Ґ_зЁб«®>::= <楫®Ґ_зЁб«®> . <¤а®Ў­ п_з бвм>
| . <¤а®Ў­ п_з бвм>
| <楫®Ґ_зЁб«®> .
<¤а®Ў­ п_з бвм>::= <®Є®­з ­ЁҐ>
| <®Є®­з ­ЁҐ> e <楫®Ґ_зЁб«®>
| <®Є®­з ­ЁҐ> E <楫®Ґ_зЁб«®>

*** Џа®Ја ¬¬  ***

<Їа®Ја ¬¬ >::= <Ј«®Ў «м­®Ґ_®ЇЁб ­ЁҐ> void main ( ) <б®бв ў­®©_®ЇҐа в®а>
| void main ( ) <б®бв ў­®©_®ЇҐа в®а>
<б®бв ў­®©_®ЇҐа в®а>::= { <¬­®¦Ґбвў®_®ЇҐа в®а®ў> }
| { }
<¬­®¦Ґбвў®_®ЇҐа в®а®ў>::=
<®ЇҐа в®а>
| <¬­®¦Ґбвў®_®ЇҐа в®а®ў> <®ЇҐа в®а>
<Ј«®Ў «м­®Ґ_®ЇЁб ­ЁҐ>::= <Ј«®Ў «м­®Ґ_®ЇЁб ­ЁҐ> <®Ўкпў«Ґ­Ёп>
| <®Ўкпў«Ґ­Ёп>

<®ЇҐа в®а>::= <¬ҐвЄ > <®ЇҐа в®а_1>
| <®ЇҐа в®а_1>
<¬ҐвЄ >::= id :
<®ЇҐа в®а_1>::= <®ЇҐа в®а_ўў®¤ >
| <®ЇҐа в®а_ўлў®¤ >
| <®ЇҐа в®а_гб«_ЇҐаҐе®¤ >
| <®ЇҐа в®а_ЎҐ§гб«_ЇҐаҐе®¤ >
| <жЁЄ«>
| <®ЇҐа в®а_ЇаЁбў Ёў ­Ёп>
| <б®бв ў­®©_®ЇҐа в®а>
| ;

ЏҐаҐ¬Ґ­­лҐ, Є®­бв ­вл Ё вЁЇл ®Ўкпў«повбп ў Ј«®Ў «м­®¬ ®ЇЁб ­ЁЁ ¤® дг­ЄжЁЁ main.
Џ®ўв®а­®Ґ ®Ўкпў«Ґ­ЁҐ ЇҐаҐ¬Ґ­­ле Ё Є®­бв ­в ­Ґ¤®ЇгбвЁ¬®.
Љ®­бв ­вл ­Ґ ¬®Јгв Ё§¬Ґ­пвмбп ў ⥫Ґ Їа®Ја ¬¬л.
‹оЎ®© Ё¤Ґ­вЁдЁЄ в®а Їа®Ја ¬¬л ¤®«¦Ґ­ Ўлвм а ­ҐҐ ®Ўкпў«Ґ­.
Љ«озҐўлҐ б«®ў  ­Ґ ¬®Јгв ЁбЇ®«м§®ў вмбп ў Є зҐб⢥ Ё¤Ґ­вЁдЁЄ в®а®ў.


*** ЋЇҐа в®а ўў®¤  ***

<®ЇҐа в®а_ўў®¤ >::= scan ( <ЇҐаҐ¬Ґ­­лҐ_ўў®¤ > );
<ЇҐаҐ¬Ґ­­лҐ_ўў®¤ >::= <ЇҐаҐ¬Ґ­­ п>
| <ЇҐаҐ¬Ґ­­лҐ_ўў®¤ > , <ЇҐаҐ¬Ґ­­ п>

ЋЇҐа в®а ўў®¤  ®бгйҐбвў«пҐв з⥭ЁҐ Ё§ бв ­¤ ав­®Ј® Ї®в®Є  ўў®¤  (Є« ўЁ вгал)
§­ зҐ­Ё© ЇҐаҐ¬Ґ­­ле 楫®Ј® Ё ўҐйҐб⢥­­®Ј® вЁЇ®ў.
€¤Ґ­вЁдЁЄ в®ал нвЁе ЇҐаҐ¬Ґ­­ле ¤®«¦­л Ўлвм ®Ўкпў«Ґ­л Ё ­Ґ ¤®«¦­л Ўлвм
Є®­бв ­в ¬Ё.

*** ЋЇҐа в®а ўлў®¤  ***

<®ЇҐа в®а_ўлў®¤ >::= print ( <§­ зҐ­Ёп_ўлў®¤ > );
<§­ зҐ­Ёп_ўлў®¤ >::= < а_ўла ¦Ґ­ЁҐ>
| <§­ зҐ­Ёп_ўлў®¤ > , < а_ўла ¦Ґ­ЁҐ>

ЋЇҐа в®а ®бгйҐбвў«пҐв ўлў®¤ ў бв ­¤ ав­л© Ї®в®Є ўлў®¤ , бўп§ ­­л© ®Ўлз­® б
нЄа ­®¬ ¤ЁбЇ«Ґп. ‚лў®¤ ¬®¦Ґв Ўлвм Є Є ЇҐаҐ¬Ґ­­ле, в Є Ё Є®­бв ­в.

*** ЋЇҐа в®а ЎҐ§гб«®ў­®Ј® ЇҐаҐе®¤  ***

<®ЇҐа в®а_ЎҐ§гб«_ЇҐаҐе®¤ >::= goto id ;

ЋЇҐа в®а ®бгйҐбвў«пҐв ЎҐ§гб«®ў­л© ЇҐаҐе®¤ Є ®ЇҐа в®аг, Ї®¬ҐзҐ­­®¬г ¬ҐвЄ®© (id).
ЊҐвЄ  ¤®«¦­  Ўлвм ®Ўкпў«Ґ­  „Ћ „ЂЌЌЋѓЋ ЋЏ…ђЂ’ЋђЂ, Ё ¤®«¦­  Ўлвм г­ЁЄ «м­®© ў
ЇаҐ¤Ґ« е Їа®Ја ¬¬л.

*** ЋЇҐа в®а гб«®ў­®Ј® ЇҐаҐе®¤  ***

<®ЇҐа в®а_гб«_ЇҐаҐе®¤ >::= if ( <«®Ј_ўла ¦Ґ­ЁҐ> ) <®ЇҐа в®а>
| if ( <«®Ј_ўла ¦Ґ­ЁҐ> ) <®ЇҐа в®а> else <®ЇҐа в®а>

…б«Ё «®ЈЁзҐбЄ®Ґ ўла ¦Ґ­ЁҐ ў®§ўа й Ґв ЁбвЁ­г, в® ўлЇ®«­пҐвбп ЇҐаўл© ®ЇҐа в®а,
Ё­ зҐ ўв®а®© ®ЇҐа в®а Ї®б«Ґ ¤ЁаҐЄвЁўл else, Ґб«Ё ®­ ЇаЁбгвбвўгҐв.

*** ‹®ЈЁзҐбЄ®Ґ ўла ¦Ґ­ЁҐ ***

<«®Ј_ўла ¦Ґ­ЁҐ>::= <«®Ј_ўла ¦Ґ­ЁҐ> <®Ї_а ў­®_­Ґа ў­®> <гб«®ўЁҐ>
| <гб«®ўЁҐ>
<гб«®ўЁҐ>::= < а_ўла ¦Ґ­ЁҐ>
| <гб«®ўЁҐ> <®Ї_ба ў­Ґ­Ёп> < а_ўла ¦Ґ­ЁҐ>
<®Ї_а ў­®_­Ґа ў­®>::= != | ==
<®Ї_ба ў­Ґ­Ёп>::= > | < | >= | <=

’ЁЇл ®ЇҐа ­¤®ў ба ў­Ґ­Ёп ¬®Јгв int Ё«Ё float. ђҐ§г«мв в: вЁЇ int, Ј¤Ґ
§­ зҐ­ЁҐ (0) - «®¦м, (1) - ЁбвЁ­ 


*** ЋЇҐа в®а жЁЄ«  ***

<жЁЄ«>::= for ( <§ Ј®«®ў®Є_жЁЄ« > ) <®ЇҐа в®а>

<§ Ј®«®ў®Є_жЁЄ« >::= <Ї а ¬Ґва_1> ; <Ї а ¬Ґва_2> ; <Ї а ¬Ґва_3>
| ; <Ї а ¬Ґва_2> ; <Ї а ¬Ґва_3>
| <Ї а ¬Ґва_1> ; ; <Ї а ¬Ґва_3>
| <Ї а ¬Ґва_1> ; <Ї а ¬Ґва_2> ;
| ; ; <Ї а ¬Ґва_3>
| ; <Ї а ¬Ґва_2> ;
| <Ї а ¬Ґва_1> ; ;
| ; ;

<Ї а ¬Ґва_1>::= <®ЇҐа жЁп_ЇаЁбў®Ґ­Ёп>
<Ї а ¬Ґва_2>::= <«®Ј_ўла ¦Ґ­ЁҐ>
<Ї а ¬Ґва_3>::= <®ЇҐа жЁп_ЇаЁбў®Ґ­Ёп>

ЏҐаўл© Ї а ¬Ґва § ¤ Ґв ­ з «м­®Ґ §­ зҐ­ЁҐ ЇҐаҐ¬Ґ­­®©, гЇа ў«по饩 жЁЄ«®¬.
…б«Ё «®ЈЁзҐбЄ®Ґ ўла ¦Ґ­ЁҐ (Ї а ¬Ґва_2) ЁбвЁ­­®, в® ўлЇ®«­пҐвбп ®ЇҐа в®а.
Ќ  Є ¦¤®¬ и ЈҐ Їа®Ёб室Ёв Ё§¬Ґ­Ґ­ЁҐ гЇа ў«по饩 ЇҐаҐ¬Ґ­­®© (Ї Ї ¬Ґва_3)


*** ЂаЁд¬ҐвЁзҐбЄЁҐ ‚ла ¦Ґ­Ёп ***

< а_ўла ¦Ґ­ЁҐ>::= < а_ўла ¦Ґ­ЁҐ> <®Ї+-> <б« Ј Ґ¬®Ґ> | <б« Ј Ґ¬®Ґ>
<б« Ј Ґ¬®Ґ>::= <¬­®¦ЁвҐ«м> | <б« Ј Ґ¬®Ґ> <®Ї*/> <¬­®¦ЁвҐ«м>
<¬­®¦ЁвҐ«м>::= ( < а_ўла ¦Ґ­ЁҐ> )
| <ЇҐаҐ¬Ґ­­ п>
| det ( < а_ўла ¦Ґ­ЁҐ> )
| <зЁб«®ў п_Є®­бв ­в >
| transpose ( < а_ўла ¦Ґ­ЁҐ> )
<®Ї+->::= + | -
<®Ї*/>::= * | /
<зЁб«®ў п_Є®­бв ­в >::= inum
| fnum

ќ«Ґ¬Ґ­в ¬Ё  аЁд¬ҐвЁзҐбЄЁе ўла ¦Ґ­Ё© пў«повбп:
- ЇҐаҐ¬Ґ­­лҐ Ё Є®­бв ­вл 楫®Ј® Ё ўҐйҐб⢥­­®Ј® вЁЇ 
- ¬ ваЁжл
- ®ЇаҐ¤Ґ«ЁвҐ«м ¬ ваЁжл

ЋЇҐа ­¤л  аЁд¬ҐвЁзҐбЄ®© ®ЇҐа жЁЁ ¤®«¦­л Ўлвм ®¤­®Ј® вЁЇ . џ§лЄ ¤®ЇгбЄ Ґв
в®«мЄ® ЇаҐ®Ўа §®ў ­ЁҐ вЁЇ  int Є вЁЇг float.
…б«Ё ®ЇҐа ­¤л ®ЇҐа жЁЁ - ¬ ваЁжл, в® а §¬Ґа­®бвЁ нвЁе ¬ ваЁж ¤®«¦­л
ᮮ⢥вбвў®ў вм ¤ ­­®© ®ЇҐа жЁЁ.


*** ЏҐаҐ¬Ґ­­ п ***

<ЇҐаҐ¬Ґ­­ п>::= id
<ЇҐаҐ¬Ґ­­ п>::= <н«Ґ¬Ґ­в_¬ ваЁжл>
| <н«Ґ¬Ґ­в_¬ ббЁў >
<н«Ґ¬Ґ­в_¬ ваЁжл>::= id [ < а_ўла ¦Ґ­ЁҐ>, < а_ўла ¦Ґ­ЁҐ> ]
<н«Ґ¬Ґ­в_¬ ббЁў >::= id <Ё­¤ҐЄб_¬ ббЁў >
<Ё­¤ҐЄб_¬ ббЁў >::= [ < а_ўла ¦Ґ­ЁҐ> ]
| <Ё­¤ҐЄб_¬ ббЁў > [ < а_ўла ¦Ґ­ЁҐ> ]

€­¤ҐЄбл ¬ ваЁж Ё ¬ ббЁў®ў ¤®«¦­л Ўлвм §­ зҐ­Ёп в®«мЄ® 楫®Ј® вЁЇ .


*** ЋЇҐа в®а ЇаЁбў Ёў ­Ёп ***

<®ЇҐа в®а_ЇаЁбў Ёў ­Ёп>::= <®ЇҐа жЁп_ЇаЁбў®Ґ­Ёп> ;
<®ЇҐа жЁп_ЇаЁбў®Ґ­Ёп>::= <ЇҐаҐ¬Ґ­­ п> = < а_ўла ¦Ґ­ЁҐ>

ЏҐаҐ¬Ґ­­ п ў ®ЇҐа в®аҐ ЇаЁб Ёў ­Ёп ¬®¦Ґв Ўлвм 楫®Ј®, ўҐйҐб⢥­­®Ј® вЁЇ®ў,
  в Є¦Ґ ¬ ваЁжҐ©.


*** ЋЎкпў«Ґ­Ёп ***

<®Ўкпў«Ґ­Ёп>::= <®Ўкпў«Ґ­ЁҐ_ЇҐаҐ¬Ґ­­ле_Ё_¬ ббЁў®ў>
| <®Ўкпў«Ґ­ЁҐ_Є®­бв ­в>
| <®Ўкпў«Ґ­ЁҐ_¬ ваЁж>

<®Ўкпў«Ґ­ЁҐ_ЇҐаҐ¬Ґ­­ле_Ё_¬ ббЁў®ў>::= <вЁЇ> <бЇЁб®Є_Ё¤Ґ­вЁдЁЄ в®а®ў> ;
| <вЁЇ> <бЇЁб®Є_¬ ббЁў®ў> ;
<бЇЁб®Є_Ё¤Ґ­вЁдЁЄ в®а®ў>::= <бЇЁб®Є_Ё¤Ґ­вЁдЁЄ в®а®ў> , id
| id
<бЇЁб®Є_¬ ббЁў®ў>::= <бЇЁб®Є_¬ ббЁў®ў> , <н«Ґ¬Ґ­в_¬ ббЁў >
<вЁЇ>::= int | float

<®Ўкпў«Ґ­ЁҐ_Є®­бв ­в>::= const int <бЇЁб®Є_Є®­бв ­в_楫> ;
<®Ўкпў«Ґ­ЁҐ_Є®­бв ­в>::= const float <бЇЁб®Є_Є®­бв ­в_ўҐй> ;
<бЇЁб®Є_Є®­бв ­в_楫>::= <бЇЁб®Є_Є®­бв ­в_楫> , id = num
| id = num
<бЇЁб®Є_Є®­бв ­в_ўҐй>::= <бЇЁб®Є_Є®­бв ­в_ўҐй> , id = fnum
| id = fnum

<®Ўкпў«Ґ­ЁҐ_¬ ваЁж>::= fmatr <бЇЁб®Є_¬ ваЁж>
<бЇЁб®Є_¬ ваЁж>::= <бЇЁб®Є_¬ ваЁж> , id [ num , num ]
| id [ num , num ]

’ЁЇ®¬ ў ®Ўкпў«Ґ­ЁЁ ЇҐаҐ¬Ґ­­ле б«г¦Ёв «ЁЎ® int, float.
Љ®­бв ­вл ¬®Јгв Ўлвм в®«мЄ® 楫®Ј® Ё«Ё ўҐйҐб⢥­­®Ј® вЁЇ .
ЋЎкпў«пҐ¬лҐ ¬ ббЁўл ¬®Јгв Ўлвм ¬­®Ј®¬Ґа­л¬Ё. Њ ЄбЁў «м­ п а §¬Ґа­®бвм 10.
‚ ®Ўкпў«Ґ­ЁЁ ¬ ваЁжл ЇҐаў®Ґ ўла ¦Ґ­ЁҐ § ¤ Ґв Є®«ЁзҐбвў® бва®Є,
ўв®а®Ґ - Є®«ЁзҐбвў® бв®«Ўж®ў (¬Ё­Ё¬ «м­л© а §¬Ґа ¬ ваЁжл [1, 1]).




Соседние файлы в папке kurs