Главная страница   
Экстренная связь
Сейчас на сайте

Админов: 2 из 5
Исполнителей: 7 из 136
Клиентов: 33 из 3527

Вход
Логин  
Пароль  
На заказ
Разместить заявку
Программирование
Информатика
Базы данных
Разработка ПО
Бухгалтерский учёт
Экономика, Аудит
Финанс. менеджмент
Финансовый анализ
Эконом. теория
Эконом. предприятия
Финансы и кредит
Менеджмент
Маркетинг
Юриспруденция
Право
Психология
Психологическая консультация
Математика
Исследование операцй
Методы оптимизации
Физика
Радиотехника
Электроника
Схемотехника
Механика
Метрология
Перефразирование
История
Английский
Студентам ТУСУР-а
Другой предмет
Готовые работы
Найти готовую
Программирование
Экономика, Аудит
Бухгалтерский учёт
Финансы и кредит
Юриспруденция
Право
История
Психология
Механика
Информация
О сайте
Контакты
Соглашение
Наши гарантии
Способы оплаты
Вопросы и ответы
Отзывы клиентов
Бонусы и скидки
Заработок
Вакансии
Написать письмо
Мы работаем
ЕЖЕДНЕВНО
с 9:30 до 23:30 msk
Поиск по сайту
Разное
Архив заказов
Анекдоты
Облака тегов
Карточные игры
Преподы-монстры
Антиплагиат
Мысли вслух





Яндекс цитирования






Грызи гранит не портя зубы;)


Яндекс.Метрика








Класс!









Stats








(Напомнить)
Логин Пароль        

ВКонтактеFacebookНаш Instagram

Лабораторная работа
Транслятор
в среде программирования Visual C++ .NET 2003

Выполненный в 2013-м году заказ


Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Visual C++ .NET 2003

Название работы: Транслятор

Вид работы: Лабораторная работа

Описание: ЗаказатьЗадание: Написать транслятор.

Идентификатор:
$ идентификатор = буква { буква | цифра }.
$ буква = "A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z"|"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|"v"|"w"|"x"|"y"|"z".
$ цифра = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9".
Комментарий:
Начало комментария: "/*"
Конец комментария: "*/"

Тип лексического анализатора (сканера): Прямой

Идентичность верхнего и нижнего регистров (прописных и строчных букв).
Существуют языки программирования, в которых ключевые слова, идентификаторы, метки и другие конструкции можно задавать с любым сочетанием прописных и строчных букв, так как их регистр игнорируется. В этом случае перед блоком лексического анализа стоит специальный модуль, преобразующий поступающие буквы к одному регистру (верхний или нижний регистр выбираются произвольно или с учетом соглашений, принятых в операционной системе при работе с внешними устройствами). Игнорирование регистра букв широко используется в языке программирования Паскаль. В других языках, например Си, верхний и нижний регистр различаются. Поэтому увеличивается набор основных символов языка и накладываются ограничения на вид букв в ключевых словах.
Прописные и строчные буквы различаются.

Организация метки.
Метка состоит из имени метки и двоеточия, являющегося ограничителем данной конструкции.
Метка - буквенно-цифровая строка:
$ метка = имя_метки ":".
$ имя_метки = идентификатор.

Организация целых чисел.
$ целое = двоичное | восьмеричное | десятичное | шестнадцатеричное.
В стиле ассемблера.
$ двоичное = {/ "0" | "1" /} ( "B" | "b" ).
$ восьмеричное = {/ "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7" /} ( "C" | "c" ).
$ десятичное = {/ цифра /} [ "D" | "d" ].
$ шестнадцатеричное = цифра {цифра | "A"|"B"|"C"|"D"|"E"|"F"|"a"|"b"|"c"|"d"|"e"|"f" } ( "H" | "h" ).

Организация действительных чисел.
$ числовая_строка = {/ цифра /}.
$ порядок = ("E"|"e")["+"|"-"] числовая_строка.
В стиле Паскаля.
$ действительное = числовая_строка "." числовая_строка [порядок] | числовая_строка порядок.

Далее следуют правила, определяющие синтаксис операторов, описаний и программы. Набор полученных правил определяет в дальнейшем структуру синтаксического анализатора разрабатываемого языка программирования.

Организация программы.
Программа состоит из двух областей: описаний и операторов. За лексемой, определяющей конец программы в файле может быть что угодно, так как осуществлять разбор дальше в соответствии с синтаксисом не имеет смысла.
$ программа = [ var описание { ";" описание } ] [implementation процедура { ";" процедура } ] "{" оператор { ";" оператор } "}".
$ составной = "{" оператор { ";" оператор } "}".

Описания.
В стиле языка Паскаль:
$ описание = идентификатор { "," идентификатор } ":" [ vector "[" целое "]" of ] тип.
$ тип = int | real.

Синтаксис операторов.
Следует отметить, что пустой оператор - это отсутствие каких бы то ни было конструкций, а не точка которая в данном случае является компонентой метаязыка, завершающей правило. Оператор прерывания цикла (break) допускается только внутри циклов.
$ оператор = [метка] непомеченный.
$ непомеченный = составной | присваивания | перехода | условный | цикла | пустой | ввода | вывода | вызов | break .
$ пустой = .
$ перехода = goto имя_метки.
$ ввода = read переменная { "," переменная }.
$ вывода = write ( выражение | спецификатор ) { "," ( выражение | спецификатор ) }.
$ переменная = идентификатор [ "[" индекс "]" ].
$ индекс = идентификатор | целое.
$ спецификатор = skip | space | tab.

Оператор присваивания.
Определяется синтаксис не только данного оператора, но и выражения, которое ему присваивается. Это выражение может использоваться и в других конструкциях языка, например в операторе вывода.
Постфиксная форма.
$ присваивание = "(" выражение переменная "=" ")".
$ выражение = "(" операнд операнд операция ")" | "(" операнд "-" ")" | операнд .
$ операция = "*" | "/" | "%" | "+" | "-" | "==" | "!=" | "<" | ">" | "<=" | ">=".
$ операнд = выражение | переменная | целое | действительное.

Условный оператор.
$ условный = if выражение then непомеченный [ else непомеченный ].

Оператор цикла.
Внутри цикла, в т.ч. внутри вложенных конструкций цикла (например, внутри вложенного условного оператора) допускается использование оператора break, прерывающего исполнение цикла.
$ цикла = loop оператор { ";" оператор } end.

Подпрограммы.
Изменения в переменных, передаваемых в подпрограмму, видны за пределами подпрограммы, т.е. параметры в подпрограмму передаются по ссылке.
$ процедура = procedure идентификатор { описание ";" } составной.
Вызов подпрограммы:
$ вызов = идентификатор "(" [ переменная { "," переменная } ] ")".

Год выполнения: 2013

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2013-м году, в рамках этого заказа была разработана программа в среде программирования Visual C++ .NET 2003. Если у Вас похожее задание на программу, которую нужно написать на Visual C++ .NET 2003, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2013-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".


Форма заказа
*Имя:
*E-Mail:
Моб.телефон:
Skype:
Icq:
Страна:
 
ВУЗ:
Город ВУЗа:
Специальность:
 
*Введите код с картинки:
код
(сменить)

Я принимаю Пользовательское соглашение



ВНИМАНИЕ ! Сотрудники сайта KURSOVIK.COM в своей работе осуществляют сбор, обработку и обобщение информации по предложенным клиентам темам. Результатом данной работы является информационная подборка, которая НЕ ЯВЛЯЕТСЯ готовой НАУЧНОЙ РАБОТОЙ, она лишь служит основой для её написания самим клиентом.
Данный сайт НЕ ЯВЛЯЕТСЯ средством массовой информации.
© 2001-2017 kursovik.com