[Функциональное программирование, Lisp, Работа с векторной графикой, Программирование] Опубликован Scheme Request For Implementation — 203: A Simple Drawing Language in the Style of SICP

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Сен-2020 20:30


Функциональная геометрияSICP
Обложка SICPStructure and Interpretation of Computer Programs -- это один из самых известных учебников программирования в мире, на основе которого несколько десятков лет преподавался начальный курс программирования в MIT, а во многих унивеситетах, в том числе в Беркли, преподаётся до сих пор.SICP использует Scheme в качестве основного (практически единственного) языка программирования. Тем не менее, нельзя сказать, что это учебник Scheme, потому что он выходит далеко за пределы того, что обычно входит в программу "изучения языка". Стоит только упомянуть, что в программу входят системы распространения ограничений, интерпретаторы языков программирования, симуляторы цифровых схем, а также симулятор целого процессорного модуля.Большая часть тем, входящих в учебник, выполнимы на "стандартной" (в смысле, соответствующего последнему на текущий момент стандарту Revised^7 Report on Algorithmic Language Scheme) Scheme.Особенные темы
Цифовой сумматор, реализуемый в качестве одного из упражений SICPОднако, для нескольких тем, встроенных средств языке недостаточно. В частности, темы случайных чисел, измерения времени выполнения, многопоточности и графического вывода стандартом языка не рассматриваются.Принятая по-умолчанию в учебнике реализация MIT/GNU-Scheme содержит необходимые примитивы, расширяющие базовый язык так, чтобы курс становился проходим.За многие годы, прошедшие с момента выхода SICP, некоторые реализации Scheme также реализовали многие примитивы, требуемые для прохождения курса.Однако, до текущего момента не существовало какого-либо нормативного документа, специфицирующего, каким именно требованиям должен удовлетворять интерпретатор, чтобы "поддерживать" прохождение курса.SRFI
Логотип community processScheme Requests for Implementation -- это community process, принятый в семействе языков Scheme. В некоторых аспектах он Java Community Process или Python Enhancement Proposals. Так или иначе, это главный инструмент обсуждения развития языкового семейства, а также главный инструмент обеспечения переносимости кода.Написание SRFI показалось автору сей заметки естественным выбором для формализации требований к программным системам.В связи с тем, что ассортимент тем, предлагаемых для выполнения, достаточно велик, показалось разумным ограничить предлагаемый документ узкой, хорошо формализованной, хотя в тоже время очень абстрактной темой графического вывода.Функциональная геометрияОсновой главы, посвящённой графической подсистема компьютера, в SICP послужила статься Питера Хендерсона "Функциональная Геометрия". (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.137.1503, https://eprints.soton.ac.uk/257577/1/funcgeo2.pdf)
Образец рисунка, сделанный методом функциональной геометрииЗнакомым с творчеством Морица Эшера это изображение может показаться смутно знакомым.В основе техник функциольнальной геометрии лежат две идеи.
  • Первая идея в том, что должен существовать некоторый языковой объект painter, который при активации должен рисовать в нужном месте холста (экрана) что-то заданное программистом. (В Scheme painter -- это функция.)
  • Вторая идея в том, что нужен какой-то способ комбинировать painter'ы, получая новые painter'ы.
В КДПВ вынесена иллюстрация этого подхода.РеализацияВ предложенном SRFI не предоставленно исчерпывающей реализации метода функциональной геометрии. Однако, предложен субстрат, достаточный для того, чтобы активный студент мог сам реализовать подмножество функциональной геометрии, предложенной в SICP на любом интерпретаторе, поддерживающем SRFI-203 (результат работы автора сей заметки).Полный текст предложения находится по ссылке:https://srfi.schemers.org/srfi-203/srfi-203.htmlАбстракт и технические детали можно найти здесь:https://srfi.schemers.org/srfi-203/SRFI находился на обсуждении два месяца, и за это время было предложено две реализации, для интерпретатора Chibi, и для интерпретатора Kawa.
Логотип Chibi-SchemeЗаключениеАвтор сей заметки (он же автор SRFI) надеется, что предложенное им расширение языка будет позитивно воспринято сообществом. (Те, кто уже сейчас пользуются Scheme, могут предложить поставщикам своего интерпретатора включить это расширение в следующий выпуск.) Автор также надеется, что тем, кто начинает изучать Scheme, SICP или компьютерную графику, данное расширение также поможет сэкономить усилия, затрачиваемые на технические детали, и там самым освободить больше ресурсов для собственно обучения.ПодпискаТе, кому кажется целесообразным выполняемая работа, приглашаются задонатить по PayPal-ссылке. Также все желающие приглашаются подписаться на обновления.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_funktsionalnoe_programmirovanie (Функциональное программирование), #_lisp, #_rabota_s_vektornoj_grafikoj (Работа с векторной графикой), #_programmirovanie (Программирование), #_scheme, #_r7rs, #_r7rslarge, #_funktsionalnoe_programmirovanie (функциональное программирование), #_chibischeme, #_kawa, #_lisp, #_geometrija (геометрия), #_esher (эшер), #_grafika (графика), #_funktsionalnoe_programmirovanie (
Функциональное программирование
)
, #_lisp, #_rabota_s_vektornoj_grafikoj (
Работа с векторной графикой
)
, #_programmirovanie (
Программирование
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 02-Июн 18:09
Часовой пояс: UTC + 5