Jump to content

ПКАСТЛ

ПКАСТЛ
Парадигма императивный , рефлексивный
Разработано Филипп Шокетт
Разработчик Филипп Шокетт
Впервые появился 2008 год ; 16 лет назад ( 2008 )
Стабильная версия
3,5 / 31 марта 2018 г .; 6 лет назад ( 31.03.2018 )
ТЫ Кросс-платформенный
Лицензия Меньшая стандартная общественная лицензия GNU
Веб-сайт www .pcosmos .что /pcastl /
Под влиянием
С , Р

PCASTL ) — (аббревиатура от Parent and Childset Accessible Syntax Tree Language это интерпретируемый язык программирования высокого уровня . Он был создан в 2008 году Филиппом Шокеттом. [1] PCASTL предназначен для облегчения написания самомодифицирующегося кода . В языке зарезервированы слова «родитель» и «дочерний набор» для доступа к узлам синтаксического дерева написанного в данный момент кода. [2]

Привет, мир

[ редактировать ]

Программа « Привет, мир » довольно проста:

"Hello, world!"

или

print("Hello, world!")

сделаю то же самое.

Синтаксис

[ редактировать ]

Синтаксис PCASTL заимствован из языков C и R. программирования Исходный код R версии 2.5.1 был изучен для написания грамматики и лексера, используемых в интерпретаторе PCASTL.

Как и в R , операторы могут, но не обязательно, разделяться точкой с запятой . [3] Как и в R , переменная может менять тип в течение сеанса . Как и в C и R , PCASTL использует сбалансированные скобки ( { и } ) для создания блоков .

Операторы, найденные в PCASTL, имеют тот же приоритет и ассоциативность что и их аналоги в C. , [2] [4] Циклы for определяются как C. в ++ и -- операторы используются, как и в C, для увеличения или уменьшения переменной до или после ее использования в ее выражении.

Пример PCASTL с использованием for зарезервированного слова и ++ оператор :

for (i = 1; i < 4; i++) print(i)

Функции и комментарии в PCASTL определяются так же, как в R :

# function definition (comment)a = function(){   print("Hello, world!")}# function calla()

зарезервированные слова родительского и дочернего набора

[ редактировать ]

Эти зарезервированные слова можно писать только строчными буквами и иначе они не будут распознаваться. Родительское . зарезервированное слово дает ссылку на родительский узел в синтаксическом дереве кода, в котором размещено это слово В следующем коде родительским узлом является оператор =.

a = parent

Переменная « a » будет содержать ссылку на = узел. Следующий код показывает, как получить ссылки на два дочерних узла оператора . = с дочернего набора зарезервированным словом .

a.childset[0]a.childset[1]

Чтобы отобразить значение «a», в этом примере приведены несколько способов:

aa.childset[0].parenta.childset[1].parenta.childset[0].parent.childset[0].parent # and so on...

В следующем коде: мы назначаем сегмент кода правому дочернему элементу = узел, мы выполняем = node во второй раз, и мы вызываем вновь определенную функцию.

a.childset[1] = `function() print("hello")'execute(a)a()

См. также

[ редактировать ]
  1. ^ «pcosmos.ca» . Филипп Шокетт . Проверено 14 июня 2008 г.
  2. ^ Jump up to: а б «PCASTL: язык синтаксического дерева, доступный для родительского и дочернего набора» . Филипп Шокетт . Проверено 14 июня 2008 г.
  3. ^ «Введение в R» . Основная группа разработчиков R. Проверено 14 июня 2008 г.
  4. ^ Хэнли, Джери Р.; Эллиот Б. Коффман (1999). Решение проблем и проектирование программ на языке C, третье издание . Аддисон-Уэсли . ISBN  0-201-35748-8 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4241325a7416f98c277200b80a31d7b2__1688418900
URL1:https://arc.ask3.ru/arc/aa/42/b2/4241325a7416f98c277200b80a31d7b2.html
Заголовок, (Title) документа по адресу, URL1:
PCASTL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)