Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Ikarus Scheme - это бесплатный программный оптимизирующий инкрементный компилятор для схемы R6RS, который компилируется непосредственно в архитектуру x86 IA-32 . Ikarus - первая публичная реализация значительной части стандарта R6RS Scheme. [1] Версия 0.0.3 содержит 94% всех форм и процедур R6RS. [2] Разработка остановилась в 2008 году.

Дизайн [ править ]

Разработчик компилятора Абдулазиз Гулум был доктором философии. студент Университета Индианы под руководством Р. Кента Дибвига , разработчика Chez Scheme , который повлиял на разработку Ikarus.

Некоторые идеи, лежащие в основе дизайна Ikarus Scheme, подробно описаны разработчиком в «Пошаговом подходе к построению компилятора». [3] Ikarus является самостоятельным хостингом с большинством компилятора и примитивов , написанных на схеме и лишь несколько частей исполняющей системы , написанной в C . Кроме того, вместо использования внешнего промежуточного языка, такого как C, LLVM или C-- , он компилируется непосредственно в машинный код, чтобы лучше использовать базовую машинную архитектуру.

Ikarus использует переносимую библиотеку R6RS и систему синтаксических регистров, которая также была разработана Абдулазизом Гулумом и описана в статье «Неявное поэтапное преобразование для библиотек R6RS». [4] Наконец, статья «Хеш-таблицы, удобные для генерации» описывает реализацию хеш-таблицы в Ikarus. [5]

Системные требования [ править ]

Ikarus работает на x86, но требует поддержки SSE2 для обработки арифметических вычислений с плавающей запятой (FP), поэтому он не будет создавать код для чипов Intel ранее Pentium 4 или для чипов Advanced Micro Devices (AMD) до Athlon 64 . Релиз 0.0.3 был протестирован и работает на:

  • macOS версии 10.4 и 10.5
  • Linux , 2.6.18; Debian, Fedora, Gentoo и Ubuntu
  • FreeBSD , версия 6.2
  • NetBSD , версия 3.1
  • Windows XP с использованием Cygwin 1.5.24

Ссылки [ править ]

  1. ^ Ghuloum Абдулазиз (2007-10-31). «Первый выпуск Ikarus - компилятор, предпочитаемый хакерами R6RS» . Группа новостей :  comp.lang.scheme . Usenet:  [email protected] . Проверено 28 ноября 2007 .
  2. ^ Ghuloum Абдулазиз (2008-02-02). «Схема Икара: История» . Схема Икара . Проверено 4 апреля 2019 .
  3. ^ Ghuloum Абдулазиз (17 сентября 2006). «Поэтапный подход к построению компилятора» (PDF) . Схема и функциональное программирование, 2006 . Портланд, штат Орегон. С. 27–37 . Проверено 28 ноября 2007 .
  4. ^ Ghuloum Абдулазиз ; Дибвиг, Р. Кент (2007). «Неявная фазировка для библиотек R6RS» . Proc. Международной конференции по функциональному программированию ACM SIGPLAN 2007 года . Фрайбург, Германия. С. 303–314 . Проверено 1 декабря 2007 .
  5. ^ Ghuloum Абдулазиз ; Дибвиг, Р. Кент (30 сентября 2007 г.). «Удобные для генерации хэш-таблицы уравнений» (PDF) . Proc. семинара 2007 г. по схемному и функциональному программированию . Фрайбург, Германия. С. 27–36 . Проверено 1 декабря 2007 .

Внешние ссылки [ править ]

Схема Икара [ править ]

  • Официальный веб-сайт
  • Сайт разработки Ikarus Scheme
  • Библиотека R6RS и домашняя страница системы syntax-case
  • Сайт разработки библиотеки R6RS и системы синтаксических кейсов
  • Руководство пользователя схемы Ikarus
  • Стандарт R6RS

Контрольные показатели [ править ]

  • ранее поддерживался The Computer Language Benchmarks Game : запись для Ikarus Scheme (Intel Pentium 4)
  • Тесты, сравнивающие Ikarus с другими реализациями схемы R5RS (эти результаты относятся к 0.0.2 и не обновлялись для 0.0.3.)
  • Тесты, сравнивающие Ikarus с другими реализациями схемы R6RS (эти результаты относятся к 0.0.2 и не обновлялись для 0.0.3.)

Обзоры [ править ]

  • Схема всего - Икарус: новая схема на блоке