Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Язык программирования Норма

Тип Реферат
Предмет Информатика и программирование
Просмотров
944
Размер файла
19 б
Поделиться

Ознакомительный фрагмент работы:

Язык программирования Норма

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

--------------------------------------------------------

Кафедра 22

Пояснительная записка к

КУРСОВОЙ РАБОТЕ

на тему

"Работа с таблицами общего пользования

на этапе лексического анализа языка Норма"

студента группы К7-02а

Жучкова Александра Викторовича

Научный руководитель:

Комиссия:

Оценка:

Москва 1995г.

1. ВВЕДЕНИЕ

Задание, полученное мной на УИР и КП в данном семестре состояло

в следующем:

- ознакомиться с языком программирования Норма и изучить его;

- изучить структуру транслятора с языка программирования Норма;

- ознакомление с языком пограммирования РЕФАЛ;

- разработать структуру данных для реализации работы с таблицами

общего пользования;

- написать функции работы стаблицами.

2. Общее описание языка Норма

Язык программирования Норма является декларативным (непроцедурным)

языком и предназначен для спецификации численных методов решения задач

математической физики. Изначально он был ориентирован на решение задач

математической физики разностными методами, однако может быть использован

для решения более широкого класса вычислительных задач.

Типичный процесс решения задачи из области математической физики

состоит из следующих этапов.

1. Постановка задачи. Выходом этого этапа является обычно система

дифференциальных уравнений, описывающих задачу.

2. Выбор пространственно-временной сетки и дискретизация уравнений с

помощью одного из разностных методов.

3. Выбор метода решения дискретных уравнений. В результате получаются

формулы (соотношения), описывающийе необходимые вычисления в узлах сетки.

4. Программирование полученных формул на некотором языке, который

обеспечивает решение задачи на вычислительной машине.

Главная идея, положенная в основу языка Норма, заключается в том,

что полученные специалистом в процессе решения прикладной задачи расчетные

формулы почти непосредственно используются для ввода в вычислительную систему

и проведения счета.Таким образом, язык Норма дает прикладному математику

возможность сформулировать свою задачу в привычных для него терминах.

Организация процесса вычислений с учетом архитектуры ЭВМ (возможностей

параллельной, векторной обработки и т. п.) - зто задача транслятора с языка

Норма.

Существенным фактом является возможность реализации одной программы

на языке Норма различными вычислительными процессами. Именно разработка

алгоритма с характеристиками, близкими к оптимальным и эффективно

учитывающими особенности конкретных ЭВМ, является наиболее узким местом

создания высококачественного программного обеспечения.

Запись на языке Норма - это, по существу, строгая запись численных

методов решения математической задачи, запись еще не алгоритмов, а просто

расчетных формул и остальной необходимой информации, которую необходимо

знать, чтобы написать программу для ЭВМ.

Отметим, что в записи на Норме не требуется никакой информации о

порядке счета, способах организации вычислительных (циклических) процессов.

Порядок предложений языка может быть произвольным - информационные

взаимосвязи будут выявлены и учтены при организации процесса счета

транслятором.

Выбор уровня языка Норма определяет характерную его черту - в этом

языке нет необходимости вводить такие понятия, как оператор присваивания и

возможность переприсваивания значений (типа х:=х+1) и операторы перехода.

Наличие таких понятий в традиционных языках программирования объясняется

необходимостью формулировки конкретного алгоритма с учетом вопросов

экономии и распределения памяти, порядка выполнения операторов и т. п.

Побочный эффект в языке Норма отсутствует по определению.

Понятно, что многие из этих вопросов появляются снова на этапе синтеза

рабочей программы. Однако, здесь они решаются автоматически по строгим

правилам, гарантирующим правильность синтезируемой программы.

Непроцедурность языка Норма позволяет преодолеть еще одну трудность,

связанную с распараллеливанием алгоритма при счете на ЭВМ, допускающих

совмещение операций. Известные методы распараллеливания последовательных

алгоритмов основаны на выявлении, при некоторых ограничениях, частей

алгоритма, которые можно выполнять независимо, в соответствии с заданным

критерием параллелизма - асинхронные вычисления, синхронные и т. п. Однако,

выявление взаимосвязей в уже сформированном последовательном алгоритме

является неестественной и трудной задачей, так как анализируемая

формулировка, как правило, насыщена избыточными взаимосвязями (типа введения

рабочих переменных для экономии памяти, конкретных способах организации

циклов и т. п.). Вообще говоря, ни откуда не следует, что последовательный

алгоритм надо транслировать в параллельный, а не определять параллельный

сразу по непроцедурной записи.

Эти свойства, и некоторые другие ограничения, позволяют строго

обосновать разрешимость синтеза выходной программы, так как в достаточно

общей постановке решение этой задачи приводит к значительным математическим

трудностям - она может оказаться NP-полной либо вообще неразрешимой. С

другой стороны, исследования, связанные с разработкой и применением языка

Норма показывают, что имеющиеся ограничения приемлимы с практической точки

зрения.

3 Структура транслятора с языка Норма.

Транслятор с языка программирования Норма уже написан на языке Рефал.

И хотя язык программиорвания Рефал весма удобен для обработки символьной

информации, транслятор написанный на этом языке очень не экономно использует

ресурсы вычислительной машины, а именно оперативную память, что зачастую

правильно написанную программы невозможно оттранслировать из за нехватки

оперативной памяти. Поэтому было решено перевести транслятор с языка

программирования Норма на язык программирования Си, который был выбран по

следующим причинам:

- язык Си позволяет гораздо более эффективно использовать ресурсы

вычислительной машины;

- язык Си универсален и удобен для решения задач системного

программирования - разработке трансляторов, операционных систем, экранных

интерфейсов, инструментальных средств;

- разработчиками языка Норма уже написан интерфейс на языке Си,

позволяющий законченные части транслятора, написанные на Рефале, заменять на

законченные части транслятора, написанные на Си, для отладки транслятора.

В процессе трансляции, решаются как традиционные задачи - лексический

синтаксический, семантический анализ, генерация выходной программы, так и

задачи, определяемые спецификой языка Норма: организация вычислений по

непроцедурному описанию задачи с выявлением возможного параллелизма

вычислений, семантический контроль возможности организации вычислений с учетом

возможностей выходного языка и архитектуры компьютера. Выходными языкоми могут

быть языки Фортран ВП ориентированный на многопроцессорный вариант ЭВМ ЕС-1191

и Фортран JNS. Трансляция проводится каждого раздела, входящего в Норма

программу, проводится автономно: для каждого раздела либо выдается программа

на выходном языке, либо, если были обнаружены синтаксические или семантические

ошибки, выдается сообщение об ошибке, после чего осуществляется переход к

трансляции очередного раздела.

Транслятор с языка программирования имеет следующую структуру:

Вход:

_______________ __________________________ ________________________

|исходный текст | | Лексический анализ | | Синтаксический анализ |

|программы + | --> |(Выделение лексем, | |и частично семантический|

|опции командной| | гупприровка лексем, | -->| анализ описаний и |-->

|строки | | начальное заполнение | | операторов |

---------------- | таблиц имен и констант)| | (заполнение всех аблиц)|

------------------------- -------------------------

________ ________________ _________

| Табл. |--- | | | Табл. |--

| | | | МЕНЕЖЕР ПАМЯТИ | | множеств| |

| | | |________________| | и т.п. | |

| | | | | |

| | | | | |

|_______| | |_________| |

---------| |_________|

Выход:

__________________ ______________ ___________ ___________

|Построение графа | |Органинизация | | Генерация | |Текст |

-->|информационных | --> |параллельных | --> | Фортран- | ->|программы |

|зависимостей опе- | |вычислений | | программы | |на Фортране|

|раторов программы | -------------- ----------- -----------

------------------

На вход лексического анализатора поступает текст исходной программы.На выходе

- отсортированный (по описаниям, операторам и итерациям) список лексем,

начально заполненные таблици имен и констант. Далее этот список поступает на

вход синтаксического анализатора, где происходит разбор конструкций-описаний,

операторов, итераций и заполняются таблицы имен, констант, множеств, описания

операторов и др. Перед началом этапа синтаксического анализа, длямаксимальной

очистки памяти происходит конвертация начальных таблиц имен и констант. Эти

таблицы поступают на вход следующего этапа, где происходит построение графа

информационных зависимостей, который используется на следуещем этапе при

определение порядка вычислений и разделение на параллельные ветви, независящие

друг от друга. На выходе получаем внутренние коды. Внутренние коды поступают

на вход кодогенерации. Выходом кодогенерации является программа на языке

Фортран.

Для обеспечения доступа к верхней памяти,а также для возможного свопинга

все операции с оперативной памятью осуществляются с использованием библиотеки

функций менеджера памяти, написанной сотрудниками института прикладной

математики.

4 Описание и решение задачи.

4.1 Постановка задачи.

В свете вышесказанного перед нами (группой разработчиков) встала задача

напсания транслятора с языка Норма с использованием инструментальных средств

языка программирования Си и библиотеки функций работы с операивной памятью.

Передо нами (двумя разработчиками) была поставлена задача написания функций

работы с таблицами имен и констант.

4.2 Решение задачи.

Для начального заполнения таблиц имен и констант были выбраны хэш-таблици.

При этом мы проигрывали в использовании оперативной памяти, но выигрывали во

времени (по сравнению с "деревьями"). Учитывая повышенные требования к

использованию памяти нами было рпинято решение по окончанию этапа лексического

анализа (т.е. после того как завершится предварительное заполнение таблиц имен

и констант и нам будет вточности известно количество идентификаторов и констант

используемых в транслируемой программе) провести конвертацию поисковой части

хэш-таблиц в непрерывные массивы фиксированной длины. При этом мы увеличиваем

обшее время трансляции за счет времени конвертации, но выигрываем в использовании

оперативной памяти за счет уменьшения числа информационных полей (в хэш-таблице

сушествует поле содержащее код идентификатора(константы), который является

ключом этого идентификатора(константы) в дальнейшей работе транслятора, в

масиве роль ключа будет играть смешение зтого элемента от начала массива -

индекс масива), а так же за счет освобождения неисопльзуемых учасков в

хэш-таблице (в любой хэш-таблице из за случайности процесса хэширования

появляются неиспользованные области приблизительно 30% от величины всей таблици).

Плюсом также является умьшение времени поиска по ключу. В масиве эта операция

эквавалентна взятию индекса от масива. В хэш-таблице поик гораздо дольше.

4.3 Выбор структуры данных

3. ЗАКЛЮЧЕНИЕ

В результате проделанной работы мною были достигнуты следуюющие цели:

- ознакомилась и изучила непроцедурный язык программирования Норма, предназначенный для записи численных методов решения задач математической физики разностными методами;

- изучила структуру транслятора с языка программирования Норма;

- ознакомилась с методами лексического анализа;

- изучила структуру лексического анализатора;

- разработала структуру данных своей части задания для реализации лексического анализатора;

-написала функцию, на вход которой поступает список лексем, а на выходе получаем список списков. Элементом этого списка списков является список лексем, который представляет собой одно предложение программы, написанной на Норме, оканчивающееся точкой. Т.е. эта функция "режет" поступающий на вход список лексем по точкам, а на выходе получаем список предложений, каждое из которых заканчивается точкой и представляется списком лексем.

Программа находится на стадии разработки. Завершение работы планируется в следующем семестре. Задание на УИР и КП выполнила полностью.

Список литературы:

А.Н. Андрианов, К.Н. Ефимкин, И.Б. Задыхайло, Н.В. Поддерюгина "Язык Норма"

А.Н. Андрианов, К.Н. Ефимкин, И.Б. Задыхайло "Непроцедурный язык Норма и методы его реализации"

А.Б. Бугеря "Реализация математических функций языка Норма для распределенных высислительных систем"

Приложение 1.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно