У вас вопросы?
У нас ответы:) SamZan.net

Отчет по лабораторной работе 4 по дисциплине- Лингвистические средства ВС Выпо

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

Министерство образования Российской Федерации

Тамбовский Государственный Технический Университет

Кафедра САПР

Отчет по лабораторной работе №4

по дисциплине: «Лингвистические средства ВС»

Выполнил: Уваров Н.А., БВТ-21

Проверила:             Коробова  И.  Л.

Тамбов 2012

Задание:

 Написать программу генерации объектного кода.

Отрывок программы:

READ (H, B, M);

PI : = 3.14;

V : = PI * H * ( B * B + M * M + B * M ) / 3

Кодировочная таблица:

Символы

Read

1

(

2

)

3

,

4

;

5

: =

6

*

7

+

8

/

9

Идентификатор

H

10  1

B

10  2

M

10  3

Pi

10  4

V

10  5

Константа

3.14

11  1

3

11  2

Результат работы лексического анализатора:

 

  1  2  10  1  4  10  2  4  10  3  3  5

  10  4  6  11  1  5

  10  5  6  10  4  7  10  1  7  2  10  2  7  10  2  8  10  3  7  10  3  8  10  2  7  10  3  9  11  2   

Грамматика:

1 <Список операторов> → <оператор> {;<оператор>}

2 <оператор> → <ввод> / <присваивание>

3 <Ввод> → Read (<список переменных>)

4 <список переменных> → <идентификатор> {,<идентификатор>}

5 <идентификатор> → H / B / M / V / PI

6 <Присваивание> → <идентификатор>  : = <арифметическое выражение>

7 < арифметическое выражение > → <слагаемое> {+<слагаемое>}

8 <слагаемое> → <множитель> {*/:<множитель>}

9 <множитель> → (< арифметическое выражение >) / <идентификатор> / <константа>

10 <константа> → 3.14 / 3

Последовательность четверок:

Текст программы:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

int main()

{

 int i,n;

   FILE *file=fopen("input.txt", "r");

   printf("start:\n");

   fscanf(file,"%d\n",&n);

 for(i=0;i<n;i++)

{

 char oper[100]="\t", op1[100]="\t", op2[100]="\t", res[100]="\t";

 fscanf(file,"%s\t%s\t%s\t%s\n", &oper, &op1, &op2, &res);

 //printf("%s %s %s %s\n", oper, op1, op2, res);

 

 if(strcmp(oper, ":=")==0)

 {

  printf("mov %s, %s\n", res, op1);

  continue;

 }

 if(strcmp(oper, "*")==0)

 {

  printf("mov al, %s\n", op1);

  printf("mul %s\n",op2);

  printf("mov %s, ax\n", res);

  continue;

 }

 if(strcmp(oper, "+")==0)

 {

  printf("add %s, %s\n",op1, op2);

  printf("mov %s, %s\n", res, op1);

  continue;

 }

 if(strcmp(oper, "/")==0)

 {

  printf("mov ax, %s\n", op1);

  printf("div %s\n",op2);

  printf("mov %s, al\n", res);

  continue;

 }

 if(strcmp(oper, "param")==0)

 {

  printf("write %s\n", op1);

  continue;

 }

}

printf("end start.");

 

fclose(file);

 

 _getch();

 return 0;

}

Пример работы программы:




1. Методы оптимальных решений
2. тема стадий уголовного процесса
3. і. Під розумовою відсталістю розуміють- астійке відхилення в свідомості та поведінці дітей яке о.
4. Случайные события и операции над ними
5. Курсовая работа- Анализ и диагностика финансового состояния предприятия
6. Медикопрофилактическое дело І курс Анатомия 360 тест ~Количество шейных позвонков- - 7 - 5 - 4 - 8
7. КОНТРОЛЬНАЯ РАБОТА по курсу- ОСНОВЫ ОПТОВОЙ ТОРГОВЛИ вариант 2 Стта
8. Тема- Выставочный павильон Выполнил- студент гр
9. Фашизм
10. участок МИРОВОЙ СУДЬЯ 127273 Москва ул