GHC


GHC
Логотип программы GHC
Тип компилятор
Разработчик Университет Глазго
Написана на Си и Haskell
Операционная система Linux, FreeBSD, NetBSD, OpenBSD, Solaris, macOS и Microsoft Windows
Первый выпуск 1989
Последняя версия
Лицензия модифицированная лицензия BSD[d][2]
Сайт haskell.org/ghc/​ (англ.)

GHC (англ. Glasgow Haskell Compiler) — один из самых мощных и развитых компиляторов функционального языка программирования Haskell, разрабатывается под координацией лаборатории университета Глазго; ключевые разработчики — Саймон Пейтон-Джонс и Саймон Марлоу (англ. Simon Marlow). Свободно распространяется под модифицированной лицензией BSD; работает на большинстве популярных Unix-систем и входит в большинство дистрибутивов Linux, есть версии для Windows и macOS.

Обеспечивается три варианта компиляции: непосредственно в машинные коды целевой архитектуры, компиляция через промежуточный код на языке Си или C--, компиляция под LLVM. Сам компилятор в основном написан на Haskell, но среда исполнения для скомпилированных программ реализована на Си и C--. Кроме компилятора, включает интерпретирующую REPL-среду GHCi.

Обеспечивает полную поддержку стандартов Haskell-98 и Haskell-2010, дополнительно реализован широкий список расширений. Одна из особенностей — параллельное исполнение программ, для которой не требуется явное выделение потоков выполнения (лишь требуется явная аннотация от разработчика программы). Реализованы значительные возможности по оптимизации программ, включая межмодульную оптимизацию. Поддерживаются различные варианты профилирования.

Некоторые поддерживаемые расширения системы типов: экзистенциальный полиморфизм, полиморфизм высших порядков, импредикативный полиморфизм, обобщённые алгебраические типы данных, семейства типов (индексированные синонимы типов, индексированные типы данных).

Примечания

Литература

  • Vitaly Bragilevsky. Haskell in Depth. — Manning, 2021. — 664 с. — ISBN 9781617295409.

Ссылки