P (programming language)

Uses your system voice; voice and rate in settings.

Snapshot

≈ 2 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

P is a programming language for asynchronous event-driven programming and Internet of things developed by Microsoft and University of California, Berkeley. P enables programmers to specify systems consisting of a collection of state machines that communicate asynchronously in terms of events. P programs can run and be analyzed on any platform supported by .NET. Additionally, P programs can generate C# and C code. P is open source, licensed under MIT License, and available on GitHub.

P is a programming language for asynchronous event-driven programming and Internet of things developed by Microsoft and University of California, Berkeley. P enables programmers to specify systems consisting of a collection of state machines that communicate asynchronously in terms of events. P programs can run and be analyzed on any platform supported by .NET. Additionally, P programs can generate C# and C code. P is open source, licensed under MIT License, and available on GitHub. database = new Database((server = this, initialBalance = initialBalance)); goto WaitForWithdrawRequests; } } state WaitForWithdrawRequests { on eWithDrawReq do (wReq: tWithDrawReq) { var currentBalance: int; var response: tWithDrawResp; // read the current account balance from the database currentBalance = ReadBankBalance(database, wReq.accountId); // if there is enough money in account after withdrawal if(currentBalance - wReq.amount >= 10) { UpdateBankBalance(database, wReq.accountId, currentBalance - wReq.amount); response = (status = WITHDRAW_SUCCESS, accountId = wReq.accountId, balance = currentBalance - wReq.amount, rId = wReq.rId); } else // not enough money after withdraw { response = (status = WITHDRAW_ERROR, accountId = wReq.accountId, balance = currentBalance, rId = wReq.rId); } // send response to the client send wReq.source, eWithDrawResp, response; } } }

Text derived from https://en.wikipedia.org/w/index.php?oldid=1379018371 under CC BY-SA 4.0; modifications have been made.