Особенности ракетки

Оглавление1 Особенности ракетки1.1 История и цели Racket1.2 Базовая реализация и поддержка1.3 Системный интерфейс и сценарии1.4 Управление ресурсами и “песочница”1.5 Веб- […]

Особенности ракетки

  • История и цели Racket

    • Racket активно разрабатывается с середины 1990-х годов.  
    • Основная цель — создание условий для создания новых языков программирования.  
  • Базовая реализация и поддержка

    • Racket обладает высокой гибкостью и может функционировать как полнофункциональный скриптовый язык.  
    • Поддерживает три разных сборщика мусора: Boehm, SenoraGC и 3m.  
    • Реализует полное исключение конечных вызовов и анализ переменных в реальном времени.  
  • Системный интерфейс и сценарии

    • Включает асинхронный ввод-вывод, зеленые потоки, каналы синхронизации и другие функции.  
    • Позволяет создавать мощные скрипты, подобные Perl или Python.  
  • Управление ресурсами и “песочница”

    • Использует концепцию “хранителя” для управления ресурсами.  
    • Библиотека racket/sandbox предоставляет изолированные контексты выполнения.  
  • Веб- и сетевое программирование

    • Включает функции для создания веб-серверов и скребков.  
    • Поддерживает протоколы, отличные от http.  
  • Графика

    • Библиотека 2htdp/image для создания изображений.  
    • Библиотека сюжетов для создания изображений для более зрелой аудитории.  
  • Программирование с графическим интерфейсом

    • Реализует переносимый графический интерфейс через API Windows, Cocoa и GTK+.  
    • Включает GUI toolkit и программу GUI designer на PLaneT.  
  • Слайд-шоу

    • Позволяет создавать презентации на основе слайдов.  
    • Включает элементы LaTeX и пакеты расширений на PLaneT.  
  • Внешний функциональный интерфейс

    • Основан на libffi и позволяет писать небезопасный C-подобный код.  
    • Включает макросы для создания выразительного языка описания интерфейса.  
  • Языковые расширения

    • Racket позволяет создавать новые языки, зависящие от предметной области и общего назначения.  
    • Включает гибкую модульную систему, обширную макросистему и богатую систему выполнения.  
  • Модульная система Racket

    • Позволяет писать код, охватывающий несколько модулей на разных языках  
    • Широко используется в дистрибутиве Racket и пользовательских библиотеках  
  • Scribble

    • Система документации Racket, представленная в виде нескольких языков  
    • Используется для документирования Racket и написания книг и статей  
    • Включает новый синтаксис для текстуально насыщенного кода  
  • Typed Racket

    • Статически типизированный вариант Racket  
    • Включает подтипы, объединения и другие особенности  
    • Позволяет переносить части программы на типизированный язык  
  • Ленивый язык

    • Язык с семантикой ленивых вычислений, аналогичный Haskell  
    • Пример с бесконечным списком, элементы которого вычисляются по мере необходимости  
  • Логическое программирование

    • Racket поставляется с тремя языками логического программирования: Racklog, Datalog и miniKanren  
    • Используют новый синтаксис, а не расширение S-выражений  
  • Инструменты обучения

    • Группа PLT использует уровни владения языком для ограничения новых студентов  
    • Пример программы с использованием htdp/bsl для начинающих студентов  
  • АЛГОЛ

    • Racket поставляется с полной реализацией языка ALGOL 60  
  • Plai и напечатанный на plai

    • Поддерживаемый язык, который может быть набранным или нетипизированным  
    • Типизированный язык PLAI отличается статической типизацией и новыми конструкциями  
  • Создание языков

    • Пример реализации нового языка, похожего на racket  
    • Включает неявное заключение в кавычки неизвестных переменных и использование хэш-таблиц в качестве функций  

Полный текст статьи:

Особенности ракетки

Оставьте комментарий

Прокрутить вверх