Blok-sxema tili
Blok-sxema tili (FCL) — bul programma analizi, specializaciyalaw hám ásirese, bólek bahalaw sıyaqlı tiykarǵı túsiniklerdi túsindiriw maqsetinde proektlestirilgen ápiwayı imperativ programmalastırıw tili. Bul til birinshi ret 1989-jılı Karsten K. Gomard hám Nil D. Djons tárepinen usınılǵan[1]. Ol keyinirek 1993-jılı olardıń Piter Sestoft penen birgeliktegi kitabında[2] hám 1998-jılı Djon Xetklifftiń lekciya jazbalarında[3] qayta payda boldı. Tómende FCL Djon Xetklifftiń lekciya jazbalarında kórsetilgenindey táriyiplenedi.
FCL — bul Fon Neyman kompyuteriniń programmanı orınlaw usılına jaqın imperativ programmalastırıw tili. Programma buyrıqlar izbe-izligine ámel etiw arqalı izbe-iz orınlanadı hám bul waqıtta jasırın jaǵday, yaǵnıy global yad saqlanıp turadı. FCL-de proceduralar túsinigi joq, biraq ol shártli hám shártsiz ótiwlerdi támiyinleydi. FCL óz atına sáykes keledi, sebebi FCL programmasınıń abstrakt shaqırıwlar grafı tikkeley blok-sxema bolıp tabıladı.
FCL programması kirgiziw retinde atları bar mánislerdiń shekli qatarın parametrler retinde qabıl etedi hám nátiyje retinde bir mánis shıǵaradı.
Sintaksis
Biz FCL sintaksisin Bekus–Naur formasın paydalanıp kórsetemiz.
FCL programması rásmiy parametr járiyalanıwları diziminen, kiriw belgisinen hám tiykarǵı bloklar izbe-izliginen ibarat:
<p> ::= "(" <x>* ")" "(" <l> ")" <b>+
Dáslep, til tek ǵana teris emes pútin sanlı ózgeriwshilerge ruqsat beredi. Tiykarǵı blok belgiden, menshiklewler diziminen hám ótiwden ibarat.
<b> ::= <l> ":" <a>* <j>
Menshiklew ózgeriwshige ańlatpanı beredi. Ańlatpa ya konstanta, ya ózgeriwshi, ya bolmasa ornatılǵan n-ar operatordıń qollanılıwı bolıp tabıladı:
<a> := <x> ":=" <e>
<e> := <c> | <x> | <o> "(" <e>* ")"
Esletpe, programma dawamında ushırasatuǵın ózgeriwshi atların programmanıń basında járiyalaw shárt emes. Programmanıń basında járiyalanǵan ózgeriwshiler programmaǵa beriletuǵın argumentlerdi bildiredi. Mánisler tek ǵana teris emes pútin sanlar bolıwı múkin bolǵanlıqtan, konstantalar da sonday boladı. Ulıwma alǵanda, operaciyalar dizimi, eger olardıń 0-ge bóliw sıyaqlı ayrıqsha jaǵdaylardı óz ishine alatuǵın qosımsha tásirleri bolmasa, áhmiyetli emes:
<c> ::= "0" | "1" | "2" | ...
<o> ::= "+" | "-" | "*" | "=" | "<" | ">" | ...
Bul jerde =, <, ... C tilindegi sıyaqlı semantikaǵa iye. - belginiń semantikası sonday, eger x-y<0 bolsa, onda x-y=0 boladı.
Derekler
- ↑ Carsten K. Gomard and Neil D. Jones. Compiler generation by partial evaluation. In G. X. Ritter, editor, Information Processing '89. Proceedings of the IFIP 11th World Computer Congress, pages 1139–1144. IFIP, North-Holland, 1989.
- ↑ Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. Partial Evaluation and Automatic Program Generation. With chapters by L.O. Andersen and T. Mogensen. Prentice Hall International, June 1993. xii + 415 pages. . Freely available at http://www.itu.dk/~sestoft/pebook/pebook.html
- ↑ John Hatcliff. An Introduction to Online and Offline Partial Evaluation using a Simple Flowchart Language. In Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School, John Hatcliff, Torben Æ. Mogensen, and Peter Thiemann (Eds.). 1998. Springer-Verlag, London, UK, 20-82.