P* (pronounced P-star) is a programming language specifically designed for web development. P* provides easy in-language support for common tasks in this field.
P* programs are scripts, and they are run by the P* interpreter, which you can download under How to get P*?.
The P* language is still under development, but it already supports many features. Help is needed to develop P* further. If you have experience with C++ and/or web design, don't hesitate to say hello on one of the mailing lists or contact the author at atle@goliathdns.no
Checkout the latest source code on the P* GitHub repository. Maybe you can find an issue there to work on?
Currently the only known site running P* is this page. Have you created something? Contact me and have it listed here to show off!
The new type called auto
will automatically set itself to the type you use when first assigning to it. It is particulary useful in foreach loops, where you now can do foreach (auto var; my_array) {...
.
You can now also define and declare stuff in the global namespace, outside of scenes. You can define structs and functions and also declare global variables.
Template handling have been improved. The blocks LOOP
and CONDITION
have been removed, and you should instead use the standard blocks if while for foreach
. From now on, you must also use pragmas to call other templates and scenes from inside a template.
See the full list of changes in the commit log, and see the updated documentation.
Pointers and references are an important part of many programming languages. In some languages, they are hidden away, and in others you use them actively. P* now supports pointers as a template type, like pointer<int> my_pointer_to_int
. You can also use pointers in foreach loops to loop arrays.
Read more in the documentation
The range operators .. and ... is now available. They are useful with the foreach loop.
Read more in the documentation
There are two public mailing lists available. One is for user questions and opinions, and the other is for more technical discussion about development.
Please report bugs and missing features on the Github page or by writing to the development mailing list.