Claims
- 1. A computer-executable method for compiling an expression written in a process-based language, the method comprising:
parsing the expression to obtain syntactical elements that represent a queue, a set of queue delimiters, a query, a sequence delimiter, and other actions; and translating the expression as a process whose first action is submitting the query as another process to the queue and after which the process continues with other actions, the query including an organization scheme formed from a customizable, tag-based language that contains data and describes data.
- 2. The method of claim 1, wherein the portion of the expression that represents the query includes a head and a body, the head being delimited by first and second query head delimiters, the body being delimited by first and second query body delimiters.
- 3. The method of claim 2, wherein contained between the first and second query head delimiters is zero or more query terms.
- 4. The method of claim 2, wherein contained between the first and second query body delimiters is zero or more constraint terms.
- 5. The method of claim 4, wherein each constraint terms is a binding that defines a relation between one query term and another query term.
- 6. The method of claim 5, wherein query terms include a literal.
- 7. The method of claim 5, wherein query terms include a complementary literal.
- 8. The method of claim 5, wherein query terms include a discarder.
- 9. The method of claim 5, wherein query terms include a name of a variable.
- 10. The method of claim 5, wherein query terms include a variable.
- 11. The method of claim 5, wherein query terms include an inversion of a query term.
- 12. The method of claim 5, wherein query terms include a tuple of query terms.
- 13. The method of claim 5, wherein query terms include a complementary tuple of query terms.
- 14. The method of claim 5, wherein query terms include a second query that has zero or more variables in the head and a third and a fourth queries separated by a comma in the body.
- 15. The method of claim 14, wherein query terms include a left injector that takes a variable as an argument.
- 16. The method of claim 5, wherein query terms include a right injector that takes a variable as an argument.
- 17. The method of claim 5, wherein query terms include a fifth query that has zero or more variables in the head and a sixth query in the body.
- 18. The method of claim 17, wherein query terms include a read operator that operates on a query term.
- 19. The method of claim 17, wherein query terms include a copy operator that operates on query terms.
- 20. The method of claim 1, wherein the portion of the expression that represents the process includes an inactivity operator, the inactivity operator allowing the inactivity of the process to be expressed.
- 21. The method of claim 1, wherein the portion of the expression that represents the process includes a summation operator that sums a set of processes, the summation operator allowing the choices that the process can choose from the set of processes to proceed to be expressed.
- 22. The method of claim 1, wherein the portion of the expression that represents the process includes a new operator, the new operator allowing the creation of a name that is bound to the process to be expressed.
- 23. The method of claim 1, wherein the portion of the expression that represents the process includes a parallel operator, the parallel operator allowing two processes executing in parallel to be expressed.
- 24. The method of claim 1, wherein the portion of the expression that represents the process includes a replication operator, the replication operator allowing the infinite behavior of the process to be expressed.
- 25. The method of claim 1, wherein the portion of the expression that represents the process includes a second queue, a second set of queue delimiters, and a process.
- 26. The method of claim 1, wherein the portion of the expression that represents the process includes a lifted query.
- 27. A computer-readable medium having computer-executable instructions for performing a method for compiling an expression written in a process-based language, the method comprising:
parsing the expression to obtain syntactical elements that represent a queue, a set of queue delimiters, a query, a sequence delimiter, and other actions; and translating the expression as a process whose first action is submitting the query as another process to the queue and after which the process continues with other actions, the query including an organization scheme formed from a customizable, tag-based language that contains data and describes data.
- 28. The computer-readable medium of claim 27, wherein the portion of the expression that represents the query includes a head and a body, the head being delimited by first and second query head delimiters, the body being delimited by first and second query body delimiters.
- 29. The computer-readable medium of claim 28, wherein contained between the first and second query head delimiters is zero or more query terms.
- 30. The computer-readable medium of claim 28, wherein contained between the first and second query body delimiters is zero or more constraint terms.
- 31. The computer-readable medium of claim 30, wherein each constraint terms is a binding that defines a relation between one query term and another query term.
- 32. The computer-readable medium of claim 31, wherein query terms include a literal.
- 33. The computer-readable medium of claim 31, wherein query terms include a complementary literal.
- 34. The computer-readable medium of claim 31, wherein query terms include a discarder.
- 35. The computer-readable medium of claim 31, wherein query terms include a name of a variable.
- 36. The computer-readable medium of claim 31, wherein query terms include a variable.
- 37. The computer-readable medium of claim 31, wherein query terms include an inversion of a query term.
- 38. The computer-readable medium of claim 31, wherein query terms include a tuple of query terms.
- 39. The computer-readable medium of claim 31, wherein query terms include a complementary tuple of query terms.
- 40. The computer-readable medium of claim 31, wherein query terms include a second query that has zero or more variables in the head and a third and a fourth query separated by a comma in the body.
- 41. The computer-readable medium of claim 40, wherein query terms include a left injector that takes a variable as an argument.
- 42. The computer-readable medium of claim 41, wherein query terms include a right injector that takes a variable as an argument.
- 43. The computer-readable medium of claim 41, wherein query terms include a fifth query that has zero or more variables in the head and a sixth query in the body.
- 44. The computer-readable medium of claim 43, wherein query terms include a read operator that operates on a query term.
- 45. The computer-readable medium of claim 43, wherein query terms include a copy operator that operates on query terms.
- 46. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes an inactivity operator, the inactivity operator allowing the inactivity of the process to be expressed.
- 47. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a summation operator that sums a set of processes, the summation operator allowing the choices that the process can choose from the set of processes to proceed to be expressed.
- 48. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a new operator, the new operator allowing the creation of a name that is bound to the process to be expressed.
- 49. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a parallel operator, the parallel operator allowing two processes executing in parallel to be expressed.
- 50. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a replication operator, the replication operator allowing the infinite behavior of the process to be expressed.
- 51. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a second queue, a second set of queue delimiters, and a process.
- 52. The computer-readable medium of claim 27, wherein the portion of the expression that represents the process includes a lifted query.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/379,864, filed May 10, 2002, entitled “Process Programming Language,” which is expressly incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60379864 |
May 2002 |
US |