Принципът на работа на компилатори

В момента има много компилатори. Компилаторът се нарича програма система, която изпълнява програмата за конверсия, написан на език за програмиране, на езика на програмата в близост до колата.

Помислете за оператор академичен език.

· За да въведете начална оператор въвеждане на данни. READ (А1, А2 AI.);

Операторът изпълнява четат първоначалните стойности на данни аз, като прескочите останалите, до началото на следващия ред, за четене присвояване на стойностите променливи А1, А2, ... ай.

· Използва се за изход изявление: Напишете (А1, А2, ... ай);

Операторът продава изходните променливи.

· Условно изявление АКО: Ако <условие> след това <оператор1> още <оператор2>- работна среда, предназначена за оператори, в зависимост от условията на истината. ако <условие> - "Вярно", а след това <оператор1>, изпълнени по друг начин <оператор2>, се появява след друг (Else и <оператор2> може да се пропусне, като в този случай стойността на <условие> - "False", програмата ще продължи екзекуция, заобикаляйки <оператор1>). <Условие> може да се състои от последователност от прости условия, свързани логически операции и (логическа И) и OR (логическо OR).

Ако> 0, тогава б = 3

Ако стойността на променлива е по-голяма от 0, то б е настроен на 3.

· Оператор цикъл с условие. докато <условие> правя <оператор>. <Оператор> Тя ще бъде изпълнена, докато <условие> вярно. Точно както в предишния пример, <условие> Тя може да се състои от последователност от прости условия, свързани оператори И и ИЛИ.

Докато<100 do a = a+1

Операция = +1 е да се изпълни до променлива ще бъде по-малко от 100.

· Цикъл с postcondition. повторение <оператор> до <условие>. <Оператор> Тя ще бъде изпълнена като дотогава <условие> Той няма да приеме стойност "истина".

Повторете = а + 1 До> 100

Твърдението е = а + 1 край, когато стойността на променливата е по-голяма от 100.

· Loop с параметъра. за <переменная> : = <выражение1> за <выражение2> правя <оператор> - Оператор цикъл с параметър. <Оператор> извършва предварително определен брой повторения. <Переменная> - брояч, чиято първоначална стойност се дава от <выражением1>, <выражение2> определя целевата стойност на брояча.

За I = 1 до 5 чета (I);

След изпълнението на този пример можете да получите тук до следния резултат:

5, т. показва всички номера от 1 до 5.

· Съединение изявление. Започнете End - съединение изявление. В примерите по-горе, вместо <оператор> Тя може да бъде само един оператор, но и група от оператори затворени в къдрава скоба. Ролята на оператора в скоби език изпълнява две ключови думи - започват и свършват.

2. Граматика

При тази процедура, са използвани следните променливи: броячите X, Y, И, Й, x1, y1 и променлива от тип низ име за име на процедурата по прехвърляне.

DoProcedure изпълнява следните действия, посочени на фигура 2.

Фигура 2. основни блокове процедури DoProcedure

Първият блок се извършва затваряне и отваряне на файл Out.asm Temp.tmp файл, - това се прави за това, което по-късно ще Temp.tmp на файла, за да копирате процедурите Out.asm текстовия файл.

Във втория блок се извършва определяне на името на процедура и нейните параметри се съхраняват в множество Пере.

В процедурата за трето поколение блок на асемблер езика на тялото директно поколение се извършва по следния правила код.

В четвъртия блок прекратява преписката и се отваря Temp.tmp Out.asm, позицията е настроен на файла.

На езика събрание за предавателните параметри, използвани МЕСТНА директива.

ЛОКАЛНО аргумент [аргумент]. [= Идентификатор]

Някои аргументи имат следния синтаксис:

където "slozhnyy_tip" - този тип данни аргумент. Тя може да бъде прост тип или комплекс експресия-показалеца.

Стойностите, отчетени местните променливи са преминали през комина.