77213

СОЗДАНИЕ СРЕДЫ РАЗРАБОТКИ ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ OCAML

Курсовая

Информатика, кибернетика и программирование

OCaml в настоящее время является активно развивающимся языком программирования. Секрет его успеха, возможно, заключается в том, что этот язык интуитивно понятен и прост для изучения даже неопытным программистом.

Русский

2015-02-02

96 KB

2 чел.

Санкт-Петербургский Государственный Университет

Математико-Механический Факультет

Кафедра Системного Программирования

Курсовая работа на тему

СОЗДАНИЕ СРЕДЫ РАЗРАБОТКИ ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ OCAML

Работу выполнил

студент 4 курса 445 группы

Мануйлов Максим Игоревич

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

старший преподаватель

Шафиров Максим Геннадьевич

Санкт-Петербург

2009

Оглавление

стр.

Введение 3

Обзор существующих разработок 5

Реализация и использованные технологии 6

Заключение 9

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


Введение

OCaml в настоящее время является активно развивающимся языком программирования. Секрет его успеха, возможно, заключается в том, что этот язык интуитивно понятен и прост для изучения даже неопытным программистом. А возможно, в том, что он объединяет в себе три мощнейшие парадигмы: помимо того, что OCaml идеально подходит для решения задач функционального программирования, и того, что он с легкостью может быть использован для решения обычных императивных задач, он, как и любой современный язык программирования, является объектно-ориентированным.

Говоря об OCaml, нельзя также не упомянуть о таких его возможностях, как вывод типов, различные способы исполнения программ и сборка мусора.

Вывод типов означает, что программист не обязан указывать тип для каждого используемого объекта - OCaml сам выведет для него наиболее подходящий. Это не только упрощает работу программиста, но и позволяет также использовать один и тот же программный код для абсолютно разных объектов, не выделяя из них общий интерфейс.

В OCaml существуют три различных способа исполнения программы. Первый способ – это интерпретация исходного кода. Он может быть полезен как для отладки, так и для написания программ, решающих небольшие и специфические задачи. Два других способа основаны на компиляции исходного кода: второй способ – компиляция в машинный код конкретной архитектуры, а третий – компиляция в байт-код виртуальной машины OCaml. Разница между ними состоит в том, что машинный код исполняется быстрее, но может быть выполнен только на своей архитектуре, в то время как байт-код выполняется медленнее, но зато от конкретной архитектуры не зависит.

Как и многие современные языки программирования, OCaml обладает механизмом сборки мусора. Этот механизм избавляет программиста от необходимости следить за выделенной памятью и освобождать ее после использования – это происходит автоматически. В результате увеличивается стабильность программы, а сама программа упрощается.

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

Хорошая среда разработки должна легко устанавливаться, быть кросс-платформенной, максимально упрощать для программиста процесс написания кода, выполнять рутинную работу и поддерживать все возможности языка.

Целью этой работы является написание такой среды разработки для языка OCaml.


Обзор существующих разработок

В настоящее время существует несколько сред разработки для языка OCaml:

  •  CamlX 
  •  Camelia
  •  XCode OCaml plugin 
  •  Emacs OCaml plugin
  •  Eclipse OCaml plugin

Основными недостатками этих продуктов являются сложность установки и недостаточная функциональность. А ведь простота установки, несомненно, является важнейшим фактором успеха: насколько бы мощным не был программный продукт, толку от него – ноль, если его невозможно правильно установить или настроить.

Единственный продукт, который стоило бы отметить – это Camelia. Устанавливается довольно просто, но из функциональных возможностей почти ничего нет. Однако для начального знакомства с языком эта среда вполне подходит как раз из-за своей простоты и небольшого размера.


Реализация и использованные технологии

Реализовать среду разработки было решено в виде плагина (расширения) к среде IntelliJ IDEA.

Плюсы такого решения в том, что эта среда кросс-платформенная (Windows, Linux, Mac OS), легко устанавливается, имеет репозиторий плагинов, из которого пользователь может установить любое доступное расширение всего за несколько секунд, имеет понятный интерфейс и большие возможности для написания расширений.

Из использованных технологий также стоит отметить JFlex – генератор лексических анализаторов, использованный для создания лексического анализатора языка OCaml.

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

  •  Подсветка синтаксиса:

  •  Подсветка ошибок:

  •  Быстрый показ определения объекта:

  •  Автозавершение кода:

  •  Подсветка парных скобок:

  •  Сворачивание кода для удобства чтения:

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


Заключение

Результатом проделанной работы является рабочая начальная версия среды разработки для языка программирования OCaml.

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


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

  1.  http://caml.inria.fr/pub/docs/manual-ocaml/
  2.  http://www.jetbrains.com/idea/plugins/developing_custom_language_plugins.html
  3.  http://www.jetbrains.net/devnet/community/idea
  4.  http://www.ocaml-tutorial.org/
  5.  http://www.ffconsultancy.com/ocaml/benefits/index.html
  6.  http://martin.jambon.free.fr/extend-ocaml-syntax.html
  7.  http://shamil.free.fr/comp/ocaml/
  8.  http://ocaml.spb.ru/
  9.  http://community.livejournal.com/ru_caml/tag/ocaml
  10.  http://vshabanov-ru.blogspot.com/2007/04/ocaml-haskell.html


 

А также другие работы, которые могут Вас заинтересовать

11504. Создание сложных форм и запросов 58.5 KB
  Лабораторная работа №5. Создание сложных форм и запросов. Задание 1. Создание сложных форм. 1. Создайте сложную форму в которой с названиями дисциплин была бы связана подчиненная форма Студенты и подчиненная форма Оценки студентов. 2. Измените расположение элементов ...
11505. ПОВЕРКА МИЛЛИВОЛЬТМЕТРОВ 21.94 KB
  Поверка милливольтметра Поверку милливольтметров производят путём сравнения их показаний с показаниями образцового потенциометра. Поверка милливольтметра заключается во внешнем осмотре прибора в определении погрешности и вариации показаний по милливольтовой и г
11506. ПРОВЕРКА АВТОМАТИЧЕСКОГО МОСТА 25.22 KB
  Методика и порядок проведения поверки В условиях учебной лаборатории при испытании мостов проводят их внешний осмотр определяют характер успокоения подвижной системы прибора основную погрешность вариацию показаний порог чувствительности время прохождения указат...
11507. ИЗУЧЕНИЕ И ИСПЫТАНИЕ АВТОМАТИЧЕСКИХ ПОТЕНЦИОМЕТРОВ 21.1 KB
  Методика и порядок проведения поверки В учебной лаборатории при испытании автоматических потенциометров проводят их внешний осмотр определяют характер успокоения подвижной системы прибора основную погрешность вариацию показаний порог чувствительности время про
11508. Определение соответствия статической характеристики термоэлектрического преобразователя 19.67 KB
  Методика и порядок проведения поверки В условиях учебной лаборатории поверка ТП включает внешний осмотр определение соответствия статической характеристики преобразователя стандартной НСХ. При проведении поверки соблюдают следующие условия: температура окруж...
11509. Виртуальные ПК 101 KB
  Лабораторная работа Тема: Виртуальные ПК Цель работы: изучить способы создания и настройки виртуального ПК установки на нём операционной системы Теоретические сведения Существует еще один способ установки на одном компьютере множества операционных систем с п...
11510. Восстановление файлов и каталогов в Windows 147.5 KB
  Лабораторная работа Тема: Восстановление файлов и каталогов в Windows Цель работы: научиться создавать резервные копии дисков и файлов клонировать носители создавать резервные копии системных носителей; научиться восстанавливать данные и систему с резервных копий. ...
11511. Файловая система NTFS 94 KB
  Лабораторная работа Тема: Файловая система NTFS Цель работы: изучить организацию файловой системы NTFS Теоретические сведения Файловая система NTFS была разработана для ОС Windows NT с учетом опыта разработки файловых систем FAT и HPFS. Основными отличиями являются: подд...
11512. Файловые системы Linux 291.5 KB
  Лабораторная работа Тема: Файловые системы Linux Цель работы: изучить организацию файловых систем Linux Теоретические сведения Типы файловых систем поддерживаемых в Linux Файловая система одна из основных составляющих любой операционной системы так как она обесп...