P (язык программирования)

П
РазработчикАнкуш Десаи, Вивек Гупта: не политик, Итан Джексон, Шаз Кадир, Шрирам Раджамани, Microsoft
Впервые появился2012 ; 13 лет назад ( 2012 )
ОСКроссплатформенный
ЛицензияЛицензия Массачусетского технологического института
Расширения имени файла.п
Веб-сайтp-org.github.io/P/

P — это язык программирования для асинхронного событийно-управляемого программирования и Интернета вещей , разработанный Microsoft и Калифорнийским университетом в Беркли . [1]

P позволяет программистам определять системы, состоящие из набора конечных автоматов , которые взаимодействуют асинхронно в терминах событий. [2] Программы P могут запускаться и анализироваться на любой платформе, поддерживаемой .NET . Кроме того, программы P могут генерировать код C# и C.

P имеет открытый исходный код , лицензирован под лицензией MIT и доступен на GitHub . [3]

Пример

машина БанкСервер{ var база данных: База данных; начальное состояние Init { запись (initialBalance: map[int, int]){ база данных = новая База данных((сервер = этот, начальныйБаланс = начальныйБаланс)); перейти к WaitForWithdrawRequests; } } состояние WaitForWithdrawRequests { на eWithDrawReq сделать (wReq: tWithDrawReq) { var currentBalance: int; ответ var: tWithDrawResp; // прочитать текущий баланс счета из базы данных currentBalance = ReadBankBalance(database, wReq.accountId); // если на счете достаточно денег после вывода если (текущийБаланс - wReq. сумма >= 10) { UpdateBankBalance(база данных, wReq.accountId, currentBalance - wReq.amount); ответ = (статус = WITHDRAW_SUCCESS, accountId = wReq.accountId, баланс = currentBalance - wReq.amount, rId = wReq.rId); } в противном случае // недостаточно денег после вывода { ответ = (статус = WITHDRAW_ERROR, accountId = wReq.accountId, баланс = currentBalance, rId = wReq.rId); } // отправить ответ клиенту отправить wReq.source, eWithDrawResp, ответ; } }}

Смотрите также

Ссылки

  1. ^ Язык P с открытым исходным кодом от Microsoft для Интернета вещей
  2. ^ Анкуш Десаи; Вивек Гупта; Итан Джексон; Шаз Кадир; Шрирам Раджамани (ноябрь 2012 г.). «P: Безопасное асинхронное программирование, управляемое событиями». Майкрософт . Проверено 20 февраля 2017 г.
  3. ^ Серхио Де Симоне. «Microsoft Open-Sources P Language for Safe Async Event-Driven Programming». InfoQ . Получено 20 октября 2016 г.

Дальнейшее чтение

  • P: Безопасное асинхронное событийно-управляемое программирование. Анкуш Десаи, Вивек Гупта, Итан Джексон, Шаз Кадир, Шрирам Раджамани и Дэмиен Цуффери. В трудах конференции ACM SIGPLAN по проектированию и реализации языков программирования (PLDI), 2013.
  • Систематическое тестирование асинхронных реактивных систем. Анкуш Десаи, Шаз Кадир и Санджит А. Сешиа. В трудах 10-го совместного заседания 2015 года по основам программной инженерии (ESEC/FSE 2015).
  • Создание надежных распределенных систем с П. Анкушем Десаи, Итаном Джексоном, Амаром Фанишайи, Шазом Кадиром и Санджитом А. Сешиа. Калифорнийский университет в Беркли . Технический отчет № UCB/EECS-2015-198.
  • Официальный сайт
  • Исходный код на GitHub
  • P: Безопасное асинхронное событийно-управляемое программирование
  • P: Язык программирования, разработанный для обеспечения асинхронности, отказоустойчивости и неопределенности.


Взято с "https://en.wikipedia.org/w/index.php?title=P_(язык_программирования)&oldid=1265272597"