![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
PrefaceBoost , ,
Influences and Related WorkНа дизайн и реализацию Phoenix большое влияние оказываетFC++.Яннис Смарагдакис и Брайан Макнамара иBoostБиблиотека ЛамбдаБЛЛЯакко Ярви и Гэри Пауэлла. Phoenix представляет собой смесьFC++иBLLс использованием методов реализации, используемых вSpiritinline parser. Феникс лучше, чемFC++илиBLL? Ну, в Фениксе есть понятия, которых нет ни в одной библиотеке.FC++имеет ранг-2 полиморфных функцийFC++жаргон, который также имеет Феникс,BLLимеет синтаксические подслащенные операторы, которыеFC++Не хватает и Феникса. Феникс наследуетFC++ранг-2 полиморфных функций. Полиморфные функции ранга-2 — это функции более высокого порядка, которые могут принимать полиморфные аргументы.FC++является первой библиотекой, обеспечивающей полиморфные функции более высокого порядка. ДоFC++Полиморфные функции не могут использоваться в качестве аргументов в пользу других функций. Что действительно побудило автора написать «Феникс», так это отсутствие доступа к истинному стек-фрейму с локальными переменными (закрытию) во всех существующих до сих пор библиотеках C++ FP. При эмуляции функций в виде функторов отсутствует самый основной ингредиент: локальные переменные и стек. Текущие FP-библиотеки эмулируют закрытия, используя переменные состояния в функторах. В более развитых приложениях FP это закрытие бедного человека просто неадекватно. Возможно,БЛЛвообще не нуждается в этом, поскольку неназванные лямбда-функции никак не могут себя назвать; по крайней мере, не напрямую.FC++, возможно, не нуждается в этом, поскольку он чисто функциональный без побочных эффектов, поэтому нет необходимости деструктивно записывать в переменную. Крайне рекурсивная природа структурыДуха, из которой Феникс является производной работой, требовала истинного повторного закрытия. Позже Phoenix унаследует истинные замыкания структурыSpirit, которые реализуют доступ к истинным локальным переменным на основе аппаратного стека. Phoenix также очень модульный по дизайну. Можно извлечь и использовать только небольшое подмножество полного каркаса, буквально разрывая каркас на мелкие кусочки, не опасаясь, что кусочки больше не будут работать. Например, можно использовать только FC++.уровень программирования стиля с полиморфными функциями ранга-2 без подслащенных операторов. Особое внимание уделяется тому, чтобы сделать Phoenix гораздо более портативным для компиляторов C++ текущего поколения, таких как Borland и MSVC. Борланд, например, задыхается наBLLиFC++Код. Забудьте о поддержке MSVC вFC++иBLL. С другой стороны, хотя Phoenix еще не портирована на MSVC, Phoenix использует те же проверенные и истинные методы реализации, которые используются в рамкахSpirit. С тех порSpiritбыл портирован в MSVC Брюсом Флорманом (v1.1) и Рагавом Сатишем (v1.3), весьма вероятно, что Феникс также будет портирован в MSVC. И, наконец, самое главное, что Phoenix, как мы надеемся, будет намного проще в использовании. В центре внимания Феникса (иДухав этом отношении) находится типичный практикующий программист в этой области, а не гуру и первосвященники. Думайте о Фениксе как о библиотеке C++ FP для всех нас How to use this manualСтруктура Феникса организована в логические модули. Эта документация предоставляет руководство пользователя и ссылку для каждого модуля в рамках. Простой и понятный пример кода стоит сотни строк документации, поэтому в руководстве пользователя представлены многочисленные примеры, аннотированные и объясненные поэтапно. Руководство пользователя основано на примерах. Многие из них. В максимально возможной степени пересылаемая информация (т.е. ссылка на конкретный фрагмент информации, который еще не обсуждался) исключается в ручной части каждого модуля пользователя. Однако во многих случаях неизбежно, чтобы продвинутые, но связанные с ними темы не перемежались с обычным потоком обсуждений. Чтобы облегчить эту проблему, темы, классифицированные как "продвинутые", могут быть пропущены в первом чтении. Некоторые иконки используются для обозначения определенных тем, указывающих на их актуальность. Эти иконки предшествуют тексту, указывающему:
Эта документация автоматически генерируетсяSpiritQuick Инструмент документации Doc. Быстро! Док является частью распределенияДуха. SupportПожалуйста, направьте все вопросы в список рассылкиSpirit. Вы можете подписаться наСписок рассылки духов. Список рассылки имеет архив с возможностью поиска. Поисковая ссылка на этот архив приведена на домашней страницеSpirit. Вы также можете читать и отправлять сообщения в список рассылки через новостной портал NNTP(благодаря www.gmane.org). Группа новостей отражает список рассылки. Вот две ссылки на архивы: черезgmane, черезgeocrawler. Моей дорогой дочери Фениксу
Copyright © 2001-2002 Joel de Guzman Статья Preface раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
|||||||||||||||||||||||||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |