SlideShare a Scribd company logo
1 of 14
Download to read offline
Интегрированная среда
разработки для
функционального языка Refal

                 Дипломная работа
                       Кулаков Д.М.
              Научный руководитель
                         Баева Н.В.
Функциональный язык Refal
                     Задачи
                   символьной
                    обработки
                   информации


                                    Аналитические
Интерпретация и   Автоматическое   преобразования в
 трансляция ЯП    доказательство     математике и
                      теорем        теоретической
                                        физике

Refal-2 является DOS приложением, которое не будет
  работать в современных 64-битных ОС.
Отсутствует интегрированная среда разработки.
Постановка задачи
Создать интегрированную среду
разработки программ на
функциональном языке Refal, которая
должна предоставлять современные
возможности по созданию и
редактированию Refal-программ,
позволяющую компилировать и
выполнять их.
Сравнение существующих IDE
                 Visual             Notepad Sharp
                 Studio   Eclipse   ++      Develop MuLisp Цель
Подсветка
синтаксиса           +        +        +       +      +      +
Автодополнение       +        +        -       +      -      +
Сворачивание
блоков текста        +        +        +       +      -      +
Список
доступных
функций ЯП           +        +        -       +      -      +
Компилятор           +        +        -       +      +      +
Справочная
информация           +        +        -       -      +      +
Портативность        -        -        -       +      +      +
Функциональные возможности
проектируемой среды
   Редактирование текстов Refal-
    программ
    ◦   Подсветка синтаксиса
    ◦   Автодополнение
    ◦   Сокрытие и отображение сегментов кода
    ◦   Поиск фрагментов текста
    ◦   Отображение списка функций
   Запуск существующего компилятора
    ◦ Переход к строке, содержащую ошибку
   Отображение справочной информации
Редактор: проектное решение
Основа – AvalonEdit (www.icsharpcode.net)
Настройка:
 Подсветки синтаксиса
 Автодополнения
 Сокрытия и отображения сегментов кода


Разработка дополнительно:
 Поиска фрагментов текста
 Отображения списка функций
Реализация: подсветка и поиск
   Подсветка: Xml-документ




   Поиск: использование регулярных
    выражений
Интеграция компилятора
                         Версия 1.8
                        DOS-приложение
 www.refal.net
                         Версия 2.3
                       Ошибки в функциях


Решение проблем:
 ◦ Создание временного файла для хранения
   расширенной программы
 ◦ Реализация стандартной функции работы с
   Refal-копилкой
 ◦ Разбиение длинных строк Refal программы
 ◦ Конвертация номеров строк
Компиляция справочной
информации
              Переформатированная
                    версия




  Сборщик
cправочной
информации
Word-To-Chm
Диаграмма основных
программных классов
Пользовательский интерфейс:
окно редактирования
Пользовательский интерфейс:
окно выполнения Refal программы
Результаты работы
 Произведен сравнительный анализ популярных
  сред разработки, определены функциональные
  возможности, необходимые для разработки Refal-
  программ
 Спроектирована и реализована среда Refal Studio,
  включая
    ◦ Редактор исходных текстов
    ◦ Интегрированный компилятор
    ◦ Справочную систему
   Проведено отладочное тестирование на
    студенческих программах

C# -- .NET Framework 4.0 -- Visual Studio
Размер – 14 Мб
Спасибо за внимание!

More Related Content

Similar to Интегрированная среда разработки для функционального языка Refal

Scripting languages
Scripting languagesScripting languages
Scripting languagesLev Panov
 
Использование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииИспользование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииDenis Latushkin
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeSQALab
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentationsef2009
 
Сущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreСущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreTatyanazaxarova
 
SDExpo 2007 - Эволюция средств разработки
SDExpo 2007 - Эволюция средств разработкиSDExpo 2007 - Эволюция средств разработки
SDExpo 2007 - Эволюция средств разработкиguest9273776
 
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPВнедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPAlexander Lisachenko
 
языки программирования
языки программированияязыки программирования
языки программированияDmitry Kulikov
 
Александр Гладыш — Lua
Александр Гладыш — LuaАлександр Гладыш — Lua
Александр Гладыш — LuaYury Yurevich
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonPyNSK
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 

Similar to Интегрированная среда разработки для функционального языка Refal (20)

лекция 3
лекция 3лекция 3
лекция 3
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Использование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложенииИспользование сторонних библиотек в веб-приложении
Использование сторонних библиотек в веб-приложении
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
куликов Sketch engine ord
куликов Sketch engine ordкуликов Sketch engine ord
куликов Sketch engine ord
 
2IDE~1.PPT
2IDE~1.PPT2IDE~1.PPT
2IDE~1.PPT
 
C# 3.0
C# 3.0C# 3.0
C# 3.0
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentation
 
Сущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCoreСущность библиотеки анализа кода VivaCore
Сущность библиотеки анализа кода VivaCore
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
SDExpo 2007 - Эволюция средств разработки
SDExpo 2007 - Эволюция средств разработкиSDExpo 2007 - Эволюция средств разработки
SDExpo 2007 - Эволюция средств разработки
 
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPВнедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
 
языки программирования
языки программированияязыки программирования
языки программирования
 
лек11 1
лек11 1лек11 1
лек11 1
 
Александр Гладыш — Lua
Александр Гладыш — LuaАлександр Гладыш — Lua
Александр Гладыш — Lua
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
378 васильев куницын
378 васильев куницын378 васильев куницын
378 васильев куницын
 
Step 1
Step 1Step 1
Step 1
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 

More from Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ

More from Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ (20)

Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
 
Муромцев. Методы анализа социальных графов и поиска сообществ
Муромцев. Методы анализа социальных графов и поиска сообществМуромцев. Методы анализа социальных графов и поиска сообществ
Муромцев. Методы анализа социальных графов и поиска сообществ
 
Рой. Аспектный анализ тональности отзывов
Рой. Аспектный анализ тональности отзывов Рой. Аспектный анализ тональности отзывов
Рой. Аспектный анализ тональности отзывов
 
Котиков Простые методы выделения ключевых слов и построения рефератов
Котиков Простые методы выделения ключевых слов и построения рефератовКотиков Простые методы выделения ключевых слов и построения рефератов
Котиков Простые методы выделения ключевых слов и построения рефератов
 
Лукьяненко. Извлечение коллокаций из текста
Лукьяненко. Извлечение коллокаций из текстаЛукьяненко. Извлечение коллокаций из текста
Лукьяненко. Извлечение коллокаций из текста
 
Иванов. Автоматизация построения предметных указателей
Иванов. Автоматизация построения предметных указателейИванов. Автоматизация построения предметных указателей
Иванов. Автоматизация построения предметных указателей
 
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
 
Сапин. Интеллектуальные агенты и обучение с подкреплением
Сапин. Интеллектуальные агенты и обучение с подкреплениемСапин. Интеллектуальные агенты и обучение с подкреплением
Сапин. Интеллектуальные агенты и обучение с подкреплением
 
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстовСмолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
 
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
 
Тодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAMLТодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAML
 
Савкуев. Построение формального описания фотографий на основе контекстно-собы...
Савкуев. Построение формального описания фотографий на основе контекстно-собы...Савкуев. Построение формального описания фотографий на основе контекстно-собы...
Савкуев. Построение формального описания фотографий на основе контекстно-собы...
 
Савостин. Системы и методы научного поиска и мониторинга
Савостин. Системы и методы научного поиска и мониторингаСавостин. Системы и методы научного поиска и мониторинга
Савостин. Системы и методы научного поиска и мониторинга
 
Мищенко. Методы автоматического определения наиболее частотного значения слова.
Мищенко. Методы автоматического определения наиболее частотного значения слова.Мищенко. Методы автоматического определения наиболее частотного значения слова.
Мищенко. Методы автоматического определения наиболее частотного значения слова.
 
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
 
Панфилов. Корпусы текстов и принципы их создания
Панфилов. Корпусы текстов и принципы их созданияПанфилов. Корпусы текстов и принципы их создания
Панфилов. Корпусы текстов и принципы их создания
 
Муромцев. Обзор библиографических менеджеров
Муромцев. Обзор библиографических менеджеровМуромцев. Обзор библиографических менеджеров
Муромцев. Обзор библиографических менеджеров
 
Можарова Тематические модели: учет сходства между униграммами и биграммами.
Можарова Тематические модели: учет сходства между униграммами и биграммами.Можарова Тематические модели: учет сходства между униграммами и биграммами.
Можарова Тематические модели: учет сходства между униграммами и биграммами.
 
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
 
Баев Системы для обучения программированию
Баев Системы для обучения программированиюБаев Системы для обучения программированию
Баев Системы для обучения программированию
 

Интегрированная среда разработки для функционального языка Refal

  • 1. Интегрированная среда разработки для функционального языка Refal Дипломная работа Кулаков Д.М. Научный руководитель Баева Н.В.
  • 2. Функциональный язык Refal Задачи символьной обработки информации Аналитические Интерпретация и Автоматическое преобразования в трансляция ЯП доказательство математике и теорем теоретической физике Refal-2 является DOS приложением, которое не будет работать в современных 64-битных ОС. Отсутствует интегрированная среда разработки.
  • 3. Постановка задачи Создать интегрированную среду разработки программ на функциональном языке Refal, которая должна предоставлять современные возможности по созданию и редактированию Refal-программ, позволяющую компилировать и выполнять их.
  • 4. Сравнение существующих IDE Visual Notepad Sharp Studio Eclipse ++ Develop MuLisp Цель Подсветка синтаксиса + + + + + + Автодополнение + + - + - + Сворачивание блоков текста + + + + - + Список доступных функций ЯП + + - + - + Компилятор + + - + + + Справочная информация + + - - + + Портативность - - - + + +
  • 5. Функциональные возможности проектируемой среды  Редактирование текстов Refal- программ ◦ Подсветка синтаксиса ◦ Автодополнение ◦ Сокрытие и отображение сегментов кода ◦ Поиск фрагментов текста ◦ Отображение списка функций  Запуск существующего компилятора ◦ Переход к строке, содержащую ошибку  Отображение справочной информации
  • 6. Редактор: проектное решение Основа – AvalonEdit (www.icsharpcode.net) Настройка:  Подсветки синтаксиса  Автодополнения  Сокрытия и отображения сегментов кода Разработка дополнительно:  Поиска фрагментов текста  Отображения списка функций
  • 7. Реализация: подсветка и поиск  Подсветка: Xml-документ  Поиск: использование регулярных выражений
  • 8. Интеграция компилятора Версия 1.8 DOS-приложение www.refal.net Версия 2.3 Ошибки в функциях Решение проблем: ◦ Создание временного файла для хранения расширенной программы ◦ Реализация стандартной функции работы с Refal-копилкой ◦ Разбиение длинных строк Refal программы ◦ Конвертация номеров строк
  • 9. Компиляция справочной информации Переформатированная версия Сборщик cправочной информации Word-To-Chm
  • 13. Результаты работы  Произведен сравнительный анализ популярных сред разработки, определены функциональные возможности, необходимые для разработки Refal- программ  Спроектирована и реализована среда Refal Studio, включая ◦ Редактор исходных текстов ◦ Интегрированный компилятор ◦ Справочную систему  Проведено отладочное тестирование на студенческих программах C# -- .NET Framework 4.0 -- Visual Studio Размер – 14 Мб