User Tag List

Показано с 1 по 10 из 28

Тема: LISP на ZX.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #19

    Регистрация
    03.10.2017
    Сообщений
    242
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    24 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    О LISP

    Легендарная компания Naugtydog Использовала LISP для создания серии игр Jack & Daxter

    На сколько я помню, они использовали AllegroCL на котором был написан GOAL который тоже является диалектом LISP. В интернете очень много информации по этой теме.

    Более того, последния серия игр этой же компании Uncharted также написана с использованием скрипт языка с как минимум LISP образным синтаксисом.

    LISP использовался в играх не только этой компанией, были и другие практические применения LISP, взять хотя бы Autocad.

    Но если говорить о Naugtydog... Могли бы они сделать эти игры без LISP? Да, могли. Но я привожу их как блестящий пример успешного исользования этого языка в современных играх. Дабы опровергнуть миф о том, что LISP: старый, медленный, ни кем не используется, имеет ограниченные области применения.

    Язык LISP, а также его младший брат Scheme, языки вериколепные и прекрасно подходят для любых задач, и даже написания операционных систем. Производительность прграмм написанных на компиляторе LISP не многим уступает (а в некоторых случаях и превосходит) программам написанным на C,C++.

    Прогаммирование ИИ возможно на любом языке. Программирование ИИ не многим отличается от от программирования любых других алгоритмов.

    Я люблю LSIP за:

    - S-Expressions Великолепный простой синтаксис, в котором описание данных эквивалентно кодированияю программ, и то и другое представленно в виде s-expression. По сути исходный код он и есть структура данных. Что позволяет этому языку иметь практически безграничную систему макросов. Компилятор LISP, в момент компиляции кода, исполняет некоторые выражения. А именно делает макроопределения, и их вызов. Результатом вызова макроопределения является новое s-expression выражение, в котором возможно имеются другие макровызовы. Компилятор продолжает выполнять все эти вызовы пока в выражении не исчезнут макровызовы. Это выражение и будет компилированно в машинный код.

    - Continuations Это возможность функции прервать свое выполнение а затем продолжить

    - Proper tail recursion Это когда рекурсивная функция не требует нового фрагмента в стеке.

    Следующий лист хотя и присутсвует во многих языках, в LISP он имеет очень качественную реализацию, не хуже а во многих случаях лучше чем у конкурента.

    - First class functions
    - CLOS Система обьектноориентированного программирования
    - Exceptions Система исключительных ситуаций

    На мой вгляд проблема распространненности LISP в том, слишком мало вакансий на LISP. Но тоже самое можно сказать и о SmallTalk, Haskell и другим.

    Если вы хотите бегло ознакомиться с ключевыми преимуществами LISP воспользуйтесь книжкой (буклетом) Land of Lisp: Learn to Program in Lisp, One Game at a Time!

    Если вы хотите изучить LISP для его использования рекомендую (было издание на русском) ANSI Common LISP

    Есть еще Practical Common LISP
    Последний раз редактировалось Sherlock; 06.10.2017 в 13:38.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •