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


 

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

40313. Судебная психиатрия 32 KB
  Вопросы судебнопсихиатрической экспертизы регламентированы уголовным и уголовнопроцессуальным гражданским и гражданскопроцессуальным законодательством а также действующей Инструкцией о производстве судебнопсихиатрической экспертизы в СССР утвержденной в 1970 г. При психиатрических лечебных учреждениях создаются амбулаторные судебнопсихиатрические комиссии и отделения стационарной судебнопсихиатрической экспертизы. Эксперт обязан явиться по вызову лица производящего дознание следователя прокурора или суда и дать объективное...
40314. Терапия алкоголизма 27.5 KB
  Первый начальный этап лечение острых и подострых болезненных состояний возникших в непосредственной связи с интоксикацией алкоголем и продуктами его метаболизма. Второй этап восстановительная терапия направленная на более полную нормализацию всех функций организма на устранение или смягчение устойчивых нарушений различных органов и систем на перестройку сложившегося патологического стереотипа который способствует рецидивам заболевания т е это этап становления ремиссии алкоголизма. Третий этап стабилизирующая терапия направленная...
40315. Терапия аффективных расстройств 30 KB
  Предпочтительным является назначение антидепрессантов второго поколения атипичных антидепрессантов в психотропном спектре которых сочетается отчетливо транквилизирующее или стимулирующее действие с тимолептическим. При появлении тенденции к затяжному течению депрессии для интенсификации терапии используются метод внутривенного капельного введения амитриптилина лудиомила сочетание антидепрессантов с иглорефлексотерапией и методом кратковременного акупунктурного воздействия. Желаемый терапевтический эффект достигается как правило при...
40316. Терапия шизофрении 30 KB
  При непрерывном течении: назначают высокие дозы нейролептиков с выраженным общим антипсихотическим топрал триседил галоперидол и избирательным антибредовым или антигаллюцинаторным стелазин этаперазин действием. Нейролептики с выраженным общим седативным влиянием хлорпромазин галоперидол. Назначают умеренные а подчас и малые суточные дозы указанных препаратов хлорпромазин по 50 200 мг в день галоперидол 5 10 мг сут. В случаях когда галлюцинаторнобредовые расстройства определяются механизмами аутохтонного развития...
40317. Транквилизаторы 27 KB
  Основные группы транквилизаторов по химической структуре: 1) производные глицерола (мепробамат); 2) производные бензодиазепина (элениум, диазепам, лоразепам, феназепам, клоназепам, альпразолам и многие другие); 3) производные триметоксибензойной кислоты (триоксазин); 4) производные азапирона (буспирон)
40318. Трудовая экспертиза 31.5 KB
  Так I группа инвалидности устанавливается при наличии социальной недостаточности требующей социальной защиты и помощи вследствие нарушения здоровья со стойким значительно выраженным расстройством функций организма обусловленным заболеванием последствием травм и дефектами приводящими к резко выраженному ограничению одной из следующих категорий жизнедеятельности или их сочетанию: способности к самообслуживанию III степени; способности к передвижению III степени; способности к ориентации III степени; способности к общению III...
40319. Основные группы олигофрении 50.5 KB
  Большинство исследователей дают цифры распространенности олигофрении в популяции от 02 до 3. Основные группы олигофрении 1. Недифференцированные формы с невыясненной этиологией составляют 65 всех случаев олигофрении. Большая часть олигофрении обусловлена поражением мозга во внутриутробном периоде.
40320. Цикотимия, дистимия 28.5 KB
  Возможны особенно на начальных этапах заболевания ипохондрические и соматизированные циклотимические фазы по типу маскированных депрессий. Дебют заболевания обычно приходится на зрелый возраст но аффективные расстройства могут впервые появляться как в юности так и в позднем возрасте. Аффективные фазы как правило разделены ремиссиями сопровождающимися на первых этапах заболевания полной редукцией психопатологических расстройств интермиссии. В некоторых случаях прослеживается сезонность чаще весенние и осенние обострения заболевания.
40321. Чмт в остром периоде 36 KB
  Сразу вслед за получением травмы у детей развивается угнетение сознания вплоть до комы которая может длиться 30 сут и более а последующий вегетативный статус до 180 дней. Не всегда соблюдается описанная для взрослых последовательность стадий восстановления сознания: понимание речи может проявиться до открывания глаз и фиксации взора. Синдромы помрачения сознания более элементарны и в их структуре часто отмечаются различные виды возбуждения: двигательное у детей до 3 лет громкий плач повторение отдельных слов в 4 7летнем возрасте...