книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
ОТЧЕТ ПО КУРСОВОЙ РАБОТЕ ПО ДИСЦИПЛИНЕ "ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ Python" ИГРА "Kill the Beaver" ( Контрольная работа, 9 стр. )
Отчет по курсовой работе по дисциплине "Системное Программное Обеспечение" на тему "Однопроходный/двухпроходный транслятор с языка математических выражений на язык деревьев вывода. Интерпретатор языка деревьев вывода." ( Курсовая работа, 51 стр. )
Отчет по лабораторной работе Дисциплина: "Теория информации и кодирование" Тема: "Код Хэмминга в матричном виде" ( Контрольная работа, 9 стр. )
Отчет по практике ООО "Пермтрансгаз". ( Отчет по практике, 35 стр. )
Отчёт к лабораторной работе по дисциплине: "Основы теории информации и кодирования" ( Контрольная работа, 13 стр. )
ОТЧЁТ О ЛАБОРАТОРНОЙ РАБОТЕ по дисциплине "Методы и средства анализа данных" по теме: "Лабораторная работа с системой анализа данных Weka" ( Курсовая работа, 29 стр. )
Оценка шумов третьего и пятого канала полярно - орбитального спутника FY – 1D ( Курсовая работа, 18 стр. )
ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ ПРОСТРАНСТВЕННОГО МОДЕЛИРОВАНИЯ ГЕОХИМИЧЕСКИХ ПОЛЕЙ ( Курсовая работа, 12 стр. )
Перевести число, записанное римскими цифрами (для их записи используются латинские буквы 1-I, 5-V, X-10, L-50, C-100, D-500, V-1000), в его десятичное представление 2010-12 ( Контрольная работа, 12 стр. )
Перевести число, записанное римскими цифрами (для их записи используются латинские буквы 1-I, 5-V, X-10, L-50, C-100, D-500, V-1000), в его десятичное представление ( Контрольная работа, 12 стр. )
Персональная графическая операционная система MS Windows ( Контрольная работа, 17 стр. )
Поиск заданного фрагмента на графе ( Контрольная работа, 21 стр. )
Поиск корней кубического уравнения вида x^3 + ax^2 + bx + c = 0 ( Контрольная работа, 22 стр. )
Поиск минимального множества сечений контуров обратной связи произвольного графа с помощью структурно-матричного анализа ( Курсовая работа, 10 стр. )
Поиск перемещенных строк при сравнении текстовых файлов ( Курсовая работа, 6 стр. )
Поиск с использованием онтологий предметных областей ( Курсовая работа, 57 стр. )
Поиск сходных алгоритмических конструкций в программном коде Модуль системы автоматического тестирования CATS ( Курсовая работа, 18 стр. )
Полнотекстовый поиск для системы Aworks ( Курсовая работа, 22 стр. )
Полноценная система электронного документооборота "ДокМенеджер" для Государственного учреждения "294 ЦСООР" ( Дипломная работа, 167 стр. )
Понятие алгоритма. Определение и типовая схема циклического алгоритма. Назначение блоков циклического алгоритма. Виды циклических алгоритмов ( Контрольная работа, 14 стр. )
Постановка задачи: Организовать ввод и вывод данных заданных типов, снабдив распечатки соответствующими заголовками ( Контрольная работа, 15 стр. )
Пошаговая распределенная игра ( Курсовая работа, 22 стр. )
Пояснительная записка к курсовой работе (по дисциплине "Базы данных") на тему: Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры ( Реферат, 16 стр. )
Пояснительная записка к курсовой работе по дисциплине "Системное программное обеспечение" "Разработка в Borland C++ Builder клиент-серверного обеспечения" "База данных газет" ( Контрольная работа, 8 стр. )
Пояснительная записка к курсовой работе по дисциплине "Теория автоматов" ( Реферат, 24 стр. )

Содержание

Содержание 2

1. Введение 3

1.1. Глоссарий 3

1.2. Описание предметной области 3

Обобщённое программирование 3

Поддержка ОП современными языками 3

Компилятор FreePascal 4

1.3. Неформальная постановка задачи 4

1.4 Обзор существующих методов решения 4

1.6 План работ 4

2. Требования к окружению 5

3.Архитектура системы 5

4. Спецификация данных 6

5. Функциональные требования 6

6. Требования к интерфейсу 7

7. Проект 7

7.1 Модули и алгоритмы 7

Лексический анализатор 7

Синтаксический анализатор 8

1. Введение

1.1. Глоссарий

Обобщённое программирование (ОП) — это парадигма программирования, заклю-чающаяся в написании алгоритмов, которые можно применять к различным типам данных. В том или ином виде поддерживается разными языками программирования. Возможности обобщённого программирования впервые появились в 70-х годах в языках CLU и Ada, а затем во многих объектно-ориентированных языках, таких как C++, Java, D и языках для платформы .NET.[7]

Компилятор — транслятор, который осуществляет перевод всей исходной програм-мы в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера. Другой разновидностью трансляторов являются интерпретаторы, осу-ществляющие анализ и перевод текста программы в машинный код пошагово, непосредст-венно перед выполнением, и сразу же исполняющие получившийся машинный код.[1]

Шаблон (параметризованный тип) – тип данных, имеющий в качестве параметров другие типы данных.[1]

Специализация шаблона – тип данных, полученный из шаблона путём подстановки в качестве параметров конкретных типов[1].

Токен – терминальный символ грамматики исходного языка[1].

1.2. Описание предметной области

Обобщённое программирование

С развитием программирования стало появляться много типонезависимых алгорит-мов, начиная с различных способов хранения, сортировки и поиска, доступа к данным, до таких сложных, как различные рефакторинги. Вследствие этого появилась парадигма про-граммирования под названием «обобщённое программирование». В общих словах его суть такова, что можно определить отдельные типы данных, инкапсулирующие в себе опера-ции, затем создавать экземпляры типов для проведения операций с конкретными типами данных. Такие типы называют шаблонами(templates, generics), или параметризованными типами. Для соответствия тенденциям развития программирования современные ЯП и их компиляторы должны в той или иной мере содержать аппараты ОП. Сейчас это делается через механизм шаблонов или слабую типизацию. Слабая типизация в данной работе рас-сматриваться не будет , так как ЯП Паскаль не является слабо типизированным языком.

Поддержка ОП современными языками

Из рассматриваемых языков поддержку механизма шаблонов обеспечивают C++, Java, C# 2.0 (и др. .NET 2.0 совместимые языки). Их трансляторы представляют пример трёх радикально различающихся моделей реализации ОП. Модель, реализованная в C++, фактически представляет собой макрос глобального уровня(см. [6]). На шаблоны наклады-ваются наименьшие ограничения из всех рассматриваемых языков. Их специализации имеют наибольшую производительность. Транслятором Java реализована модель обёртки над типом- параметром. Это было сделано, чтобы не изменять код JVM. Ограничения здесь больше, но производительность значительно меньше из-за операций упаковки-распаковки(boxing) В .NET 2.0 языках код шаблона компилируется в IL как код любого другого типа, а механизмы создания специализаций поддерживаются самой платфор-мой(см. [3,4]). Трансляторы ЯП Паскаль не поддерживают механизма шаблонов. В новой версии Borland Delphi .NET будет поддержка .NET generics.

Компилятор FreePascal

Данный компилятор является свободно распространяемым компилятором ЯП Пас-каль с открытым исходным кодом. Он разрабатывается на Open Source началах. На данном этапе развития поддерживает несколько операционных систем и архитектур процессоров и совместим с Delphi. Инструмент шаблонов станет отличным дополнением, необходимым как для развития языка, так и для развития компилятора.

1.3. Неформальная постановка задачи

Таким образом, необходимо на основе существующих решений разработать и реали-зовать модель поддержки ОП, обеспечивающую производительность компилируемых язы-ков, и соответствующую стилю ЯП Паскаль

1.4 Обзор существующих методов решения

На момент написания работы не существует компиляторов ЯП Паскаль, реализую-щих поддержку ОП. Поэтому можно привести более подробное сравнение

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

1. Ахо Альфред В., Сети Рави, Ульман Джеффри Д. Компиляторы: принципы, технологии и инструменты. : Пер. с англ. – М. : Издательский дом «Вильямс», 2003.

2. MSDN Library. http://msdn.microsoft.com.

3. Golding T. Professional .NET 2.0 Generics. Wiley Publishing, 2005. ISBN-10: 0-7645-5988-5

4. Официальный сайт компилятора FreePascal. http://www.freepascal.org.

5. Lidin, S. Expert .NET 2.0. IL Assembler. ISBN-10: 1-59059-646-3

6. Е.А.Зуев Принципы и методы создания компилятора переднего плана Стандарта Си++ Диссертация на соискание ученой степени кандидата физико-математических наук. Москва, октябрь 1999

7. Wikipedia, the free encyclopedia. http://ru.wikipedia.org

приложений нет

2000-2024 © Copyright «DipMaster-Shop.ru»