77213

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

Курсовая

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

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

Русский

2015-02-02

96 KB

3 чел.

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

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

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

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

СОЗДАНИЕ СРЕДЫ РАЗРАБОТКИ ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ 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


 

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

38618. Создание БД «Учет Зарплаты Строительной фирмы» 1.04 MB
  СУБД это программная оболочка расширяющая функции операционной системы которая управляет доступом к базам данных и обеспечивает сервисные функции для пользователя. Иерархическая база данных представлена как дерево состоящее из объектов различных уровней. Сетевая база данных база данных подобная иерархической базе данных за исключением того что в них имеются указатели в обоих направлениях которые соединяют родственную информацию.
38619. ЕВОЛЮЦІЯ ФОРМ РОСІЙСЬКОГО НАРОДНО-СЦЕНІЧНОГО ТАНЦЮ 1020.5 KB
  Напротязі багатьох років російський народно-сценічний танець постійно розвивається, збагачується новими темами, новою пластикою, ускладнюється композиція народно-сценічнічних хореографічних творів, загострюється форма їх сценічної подачі, що вимагає ретельного дослідження та систематизації танцювальних форм, жанрів та видів російського народного танцювального мистецтва.
38620. Аттестация типовых рабочих мест для предприятий текстильной промышленности 1.81 MB
  Основные понятия аттестации рабочих мест организация и порядок проведения аттестации рабочих мест по условиям труда Научно-исследовательский д. показать аттестацию типовых рабочих мест по условиям труда в текстильной промышленности на ЗАО Техноткани выработать рекомендации по улучшению условий труда. Практическая значимость и рекомендации по использованию результатов работы Результаты работы имеют практическое значение и могут быть использованы для решения задач охраны труда 3. При анализе условий труда использовались...
38621. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по выполнению выпускной квалификационной работы по специальности «Юриспруденция» 271.56 KB
  65 Юриспруденция БИБЛИОТЕКА ЦФ РАП Воронеж 2009 № ББК 67р М 54 Методические рекомендации по выполнению выпускной квалификационной работы по специальности 030501. Методические рекомендации по выполнению выпускной квалификационной работы обсуждены и одобрены на заседании учебно методического совета ЦФ РАП Протокол № 4 от 26.2008 Методические рекомендации по написанию и оформлению выпускной квалификационной дипломной работы подготовлены в соответствии с требованиями Федерального закона от 22 августа 1996 г.
38622. Генетический скрининг 96 KB
  Генетический скрининг представляет собой обследование популяции на предмет выявления лиц, обладающих генотипом, о котором известно, что он связан либо с болезнью, либо с предрасположением к ней у человека или его потомства. В научно-исследовательском плане скрининг может дать представление о частоте определенного генотипа в популяции и о полиморфизме заболевания
38623. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ к выполнению и защите выпускных квалификационных работ в Высших учебных заведениях 640.5 KB
  Навыки творческой работы приобретаются студентом в течение всего периода обучения в ВУЗе. Завершается этот процесс выполнением дипломной работы. Оказать необходимую методическую помощь правильно направить усилия студента на качественное выполнение дипломной работы основная задача данного учебнометодического пособия. В нем рассматриваются общие вопросы выполнения дипломной работы: сформулированы требования и даны указания по его объему структуре содержанию по организации работы студента в процессе написания дипломной работы а также...
38624. Технологии деятельности по решению проблем трудоустройства молодежи» (на примере Рязанской области) 650.5 KB
  Основные направления обеспечения занятости молодёжи в Российской Федерации. Анализ деятельности негосударственных субъектов занятости по обеспечению трудоустройства молодёжи в Рязанской области . В то же время учитывая что молодежь есть величайший стратегический и инновационный ресурс страны необходимо признать сферу ее занятости приоритетной частью социальноэкономической политики государства. Серьезной проблемой молодежной занятости является несоответствие объемов и профилей подготовки специалистов...
38625. Правовое регулирование гражданских правоотношений по оказанию юридических услуг 383.5 KB
  Общая характеристика возмездного оказания юридических услуг6 1. История становления и развития правоотношений по оказанию юридических услуг. Понятие юридической услуги в гражданском праве России . Правовое регулирование отношений по оказанию юридических услуг.
38626. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ ПО СОЦИАЛЬНОЙ ПСИХОЛОГИИ 127 KB
  В названии работы как правило представлены предмет и объект исследования. Важно четко знать предмет своего исследования какие психические явления изучаете. Экспериментальное и эмпирическое исследования разные явления. СТРУКТУРА КУРСОВОЙ ДИПЛОМНОЙ РАБОТЫ Стандартная курсовая дипломная работа содержит: титульный лист; оглавление; введение 10 от общего объема; главы основной части: теоретическая 20 30 заканчивается пронумерованными выводами; эмпирическая очень желательно чтобы по объему она была пропорциональна...