|
Froglingo |
|
A programming language empowered by a total-recursive-equivalent data model |
|
|
|
|
|
Many database applications were written in programming languages in the 1960s and 1970s, and they are still in operation. DBMSs (Database Management Systems) came to database application software in and around the 1970s. They significantly improve the productivity of software development and maintenance. In spite of the advance, searching for a more productive language system continues. Froglingo is one of the products aimed for a better productivity. What is Froglingo? Froglingo is a computer language unifying both DBMS and programming language. It is a "database management system" (DBMS) that stores business data and supports queries; a "programming language" that expresses business logic; a "file system" that stores and shares files; and a "web server" that interacts with users across networks. More than a consolidation of traditional technologies, Froglingo is a monolith with additional functionality. It is a new data modeling methodology and an advanced reasoning tool. It offers a novel approach to address many challenges in knowledge representation and reasoning. What makes Froglingo
unique is its sublanguage -- the EP (Enterprise-Participant) data model
that is the first known as semantically equivalent to a class of TOTAL
recursive functions. The EP data model organizes business data and logic in
higher-order functions. The following characteristics make database application development easier:
Developing data-intensive software applications in Froglingo is analogous to database management in a relational DBMS, where users only need to define data schemes, enter data, and specify data queries. The main difference is the expressive powers: the relational DBMS is for tables and the relational albegra, and the Froglingo is for total recursive functions and a class of total recursive functions. Note that a class of total recursive functions get rid of non-termination processes and keep the complete semantics for all the meaningful software applications. Depending on business needs, users can specify different report formats such as Froglingo expressions, HTML/XML, or any textual based formats. Froglingo has its own web server such that users can send requests through HTTP over internet. It manages files as data. It has built-in access control operators to protect data as if a file system has its own operators to protect files. The roles of programmers in Froglingo are consolidated with DBAs' because there is no longer "source code" separated from database (every data or logic is in database).
Type-free is the most important difference of Froglingo from traditional programming languages in practice. In other words, users don't need to define their own types (e.g., data structures or classes) for software applications. The subtypes of applications are specified as constraints via Froglingo built-in operators as if employee data and salary data were specified in tables of a relational DBMS. Unlike other type-free systems such as the lambda-calculus, the EP data model guarantees bug-free (non-termination). Froglingo not only makes it easier to write data-intensive business applications, but also offers a fresh opportunity to address many challenges in knowledge representation and reasoning. The new ability comes from the properties of a class of total (higher-order) functions, the complete and exact semantics for all the software applications we want to build. This mathematical limit guarantees that Froglingo is the sharpest tool ever in tackling the challenges. What is Froglingo for? Froglingo is a generic tool for database applications. It can be used to construct arbitrary information management systems involving data, files, and business logic. Here are some sample areas Froglingo can be applied for:
Froglingo allows users to strictly focus on applications. It doesn't require readers to have knowledge on the traditional technologies such as types in programming languages and database management systems. The only exception is the HTML language when one needs to write HTML documents for web pages. |