Jump to content

Гибкий

(Перенаправлено с Lithe (язык программирования) )

Lithe — экспериментальный язык программирования, созданный в 1982 году Дэвидом Сэндбергом из Вашингтонского университета , который позволяет программисту свободно выбирать собственный синтаксис. сочетает идеи синтаксически-ориентированного перевода и классов Lithe по-новому , в результате чего получается удивительно простой, но мощный язык.

Стандартная модель программирования на основе классов не определяет механизм манипулирования объектами: там, где Smalltalk использует передачу сообщений, Lithe использует синтаксически-ориентированную трансляцию (SDT). SDT — это метод перевода строки в последовательность действий путем присоединения одного такого действия к каждому правилу грамматики. Таким образом, анализ строки грамматики создает последовательность применений правил. Lithe объединяет SDT с моделью классов, используя классы в качестве нетерминального алфавита грамматики. Поскольку класс грамматики, используемый Lithe, правильно содержит все контекстно-свободные грамматики, можно описать широкий спектр синтаксиса, а SDT предоставляет простой способ присоединения семантики к любому такому синтаксису.

Пакет это единица модульности программы в Lithe. Пакет разделен на две части: одна определяет классы, а другая — правила. Скрытие информации достигается за счет требования как ключевых слов экспорта для тех правил и классов, которые должны быть видны вне пакета , так и включения имен исходных пакетов в предложение with потребительского пакета.

Программирование в Lithe состоит из определения пар правил и классов. Возьмем, к примеру, задачу вычисления абсолютного значения числа:

rule "|" <i:int> "|" return int;
  {if i<0 then return -i else return i end}

После того, как эта пара правило-действие определена, ее можно свободно использовать в исходном коде Lithe, например, после этого будет действительным следующее выражение:

|x - y| + 3

Эквивалентное правило в BNF будет:

<int>  ::=  "|" <int> "|"

Обратите внимание, что описание Lithe меняет местами левую и правую части описания BNF, а затем добавляет имя к каждому нетерминалу в правой части BNF. Эти имена используются в части действия, которая выражается в виде строки, которая преобразуется в последовательность действий с использованием других, ранее определенных пар правило-действие (в конечном итоге некоторые из этих пар правило-действие будут вызывать примитивные действия).

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 28120e79218bd08700e8c028f46dbae8__1720446120
URL1:https://arc.ask3.ru/arc/aa/28/e8/28120e79218bd08700e8c028f46dbae8.html
Заголовок, (Title) документа по адресу, URL1:
Lithe - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)