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


 

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

22291. ПСИХОДИАГНОСТИКА РАЗВИТИЯ МЛАДЕНЦЕВ И ДОШКОЛЬНИКОВ 92.5 KB
  Рассмотрим некоторые шкалы развития младенцев. Гезелл и его коллеги подготовили таблицы развития охватывающие четыре основные сферы поведения: моторику язык адаптивное и личностносоциальное поведение. Они обеспечивают стандартизированную процедуру для наблюдения и оценки хода развития поведения ребенка в обыденной жизни.
22292. ПСИХОЛОГИЧЕСКАЯ ГОТОВНОСТЬ К ОБУЧЕНИЮ В ШКОЛЕ 85 KB
  Поэтому важно заранее еще до начала школьного обучения выяснить насколько психические возможности ребенка соответствуют требованиям школы. Показателями развития мышления до уровня готовности к школьному обучению является способность ребенка осуществлять мыслительные операции анализа синтеза сравнения обобщения в знакомом материале сформированность нагляднообразного мышления до уровня позволяющего выполнять учебные задания характерные для начального периода обучения. Личностная готовность предполагает зрелость мотивов учебной...
22293. СОЦИАЛЬНЫЕ И ЭТИЧЕСКИЕ АСПЕКТЫ ПСИХОЛОГИЧЕСКОЙ ДИАГНОСТИКИ. ЭТИЧЕСКИЙ КОДЕКС ПСИХОЛОГА-ДИАГНОСТА 69 KB
  Следует также заметить что студенты которые участвуют в учебном тестировании обычно не готовы к самостоятельному проведению диагностического обследования других людей и к интерпретации тестовых оценок. Неверные представления о характере и цели обследования а также неправильные интерпретации диагностических результатов лежат в основе многих распространенных ошибок и критических замечаний в адрес психологической диагностики. Полезный зарубежный опыт состоит также в том что для повышения профессиональных норм и улучшения качества...
22294. Психолого-педагогическая диагностика 38 KB
  Теоретические основы психодиагностики задаются соответствующими областями психологической науки общая дифференциальная возрастная медицинская психология и др. К методическим средствам психодиагностики относятся конкретные приемы изучения индивидуальнопсихологических особенностей способы обработки и интерпретации получаемых результатов. При этом направления теоретической и методической работы в области психодиагностики определяются главным образом запросами психологической практики.
22295. ИЗ ИСТОРИИ ПСИХОЛОГИЧЕСКОЙ ДИАГНОСТИКИ 140.5 KB
  Появление тестовых методов принято связывать с бихевиоризмом. Именно этим занимались первые психодиагносты разработавшие метод тестов термин введен Ф. В своей статье Интеллектуальные тесты и измерения 1890 год журнал Mind Мысль Кеттелл писал о том что применение серии тестов к большому числу индивидов позволит открыть закономерности психических процессов и тем самым приведет к преобразованию психологии в точную науку. Вместе с тем он высказал мысль о том что научная и практическая ценность тестов возрастет если условия...
22296. КЛАССИФИКАЦИЯ ПСИХОДИАГНОСТИЧЕСКИХ МЕТОДИК 125 KB
  К формализованным методикам относятся тесты опросники методики проективной техники и психофизиологические методики. Методики высокого уровня формализации Как уже говорилось выше они включают в себя четыре главных класса методик: тесты которые в свою очередь делятся на несколько подклассов опросники методики проективной техники и психофизиологические методики. Однако по своей психологической сущности тесты и например опросники очень несходны между собой. Тесты Тесты в переводе с английского испытание проверка проба ...
22297. ТРЕБОВАНИЯ К ПОСТРОЕНИЮ И ПРОВЕРКЕ МЕТОДИК 135.5 KB
  Обычно авторы методики в руководстве приводят точные и подробные указания по процедуре ее проведения. Формулирование таких указаний составляет основную часть стандартизации новой методики т. Другим наиболее важным этапом в стандартизации методики является выбор критерия по которому следует проводить сравнение результатов диагностических испытаний поскольку диагностические методики не имеют заранее определенных стандартов успешности или неудачи в их выполнении. В общих чертах стандартизация диагностической методики ориентированной на...
22298. Организация санитарно-противоэпидемических мероприятий в чрезвычайных ситуациях 181 KB
  Ознакомить студентов с организационной структурой и задачами санитарно-эпидемиологической службы, основами организации и порядком проведения противоэпидемических мероприятий в чрезвычайных ситуациях мирного и военного времени
22299. ОРГАНИЗАЦИЯ ОКАЗАНИЯ КВАЛИФИЦИРОВАННОЙ И СПЕЦИАЛИЗИРОВАННОЙ МЕДИЦИНСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В ВОЕННОЕ ВРЕМЯ 160.5 KB
  Изучить организацию лечебно-эвакуационного обеспечения населения в очагах массовых санитарных потерь при применении противником ОМП. Рассмотреть организацию оказания квалифицированной и специализированной медицинской помощи пострадавшим. Изучить организацию работы второго этапа медицинской эвакуации