Froglingo

A programming language empowered by a total-recursive-equivalent data model

 

 


What is Froglingo?
Rationale
What is Froglingo for?
Prerequisites

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.

Rationale

The following characteristics make database application development easier:

  • Froglingo organizes data and logic in higher-order functions and offers more powerful query expressions than SQL does.
  • Froglingo is a single language to manipulate files, business data, and business logic.
  • Database applications can communicate without data exchange agent.
  • Froglingo has a single storage uniformly storing files, data, and business logic.
  • User accounts and access privileges, as built-in facilities, can be specified by users to perform data access controls between business units, and (or) between users in a business unit.
  • Froglingo has its own built-in web server that communicates with web browser across network.

 

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:

  • Database applications,
  • Content management systems,
  • Data warehouses,
  • Web sites,
  • Collaborative applications across multiple organizations, and
  • Knowledge representation and reasoning.

Prerequisites

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.