# API-Calculus

API Calculus is a program that solves calculus problems using operating systems within a device. In 1989, the PI Calculus was created by Robin Milner and was very successful throughout the years. The PI Calculus is an extension of the process algebra CCS, a tool with algebraic languages specific to processing and formulating statements. It provides a formal theory for modeling systems and reasoning about their behaviors. In the PI Calculus, there are two specific variables: name and processes. In 2002, Shahram Rahimi decided to create an upgraded version of the PI Calculus and called it the API Calculus. Milner claimed the detailed characteristics of the API Calculus to be its "Communication Ability, Capacity for Cooperation, Capacity for Reasoning and Learning, Adaptive Behavior, and Trustworthiness."
The main purpose of creating this mobile advancement is to better network and communicate with other operators while completing a task. Unfortunately, API Calculus is not perfect and has faced a problem with its security system. The language has seven features created within the device that the PI Calculus does not have. Since this program is so advanced due to the way the software was created and the different abilities offered in the program, it requires conversion into other programming languages so it can be used on various devices and other computing languages. Although API Calculus is currently being used by various other programming languages, modifications are still being made since the security on the API Calculus is causing problems for users.

## What Does It Do?

The main uses of API Calculus are modeling migration, intelligence, natural grouping and security in agent-based systems. This calculus programming language is usually used in various other program languages such as Java. In Java, a famous programming language used by various corporations such as IBM, TCS, and Google, API Calculus is commonly used to solve equations and programs involving calculus.

## Features

API Calculus has a wide variety of features including those similar to the PI Calculus but it also has new and improved features such as:
* accepts processes to be passed over communication links
* natural grouping of mobile processes is addressed
* features calculus dictionary
* includes milieu - a level of abstraction that is between a single mobile agents (combination of computer software and data that is able to transfer from one computer to another independently and still able to work on the most recent computer that data was transferred to) and the device as a whole. It is a very restricted environment that involves zero or many agents or other milieus that work closely together to solve computer based problems.
* ability of grouping together hosts (a physical node - connection point - or software program) and processes (computer program that is running) that are similar
* contains different programming languages
* knowledge units

## Verification Strategy

The software language used throughout the API Calculus program is translated into two other different languages. It is first translated from API Calculus syntax to ATEL/ATL, then to MOCHA. The outcome of the translating module is like the step previously mentioned.
* Input Module( receives API Calculus model )
* Translating Model ( converts API syntax to ATEL/ATL syntax )
* Model Verification ( MOCHA )
* Display Mode
Transferring API syntax to ATEL/ATL requires coding transformation knowledge to successfully transfer.

## Syntax

The API program has its own syntax that it follows in order to make the program run smoothly. The program is broken down into four main categories such as terms, processes, knowledge units, and milieu. The terms can be names, terms, facts, rules or functions that are assigned to variable names of the program. The process is the list of expressions used within the program to solve a calculus problem or equation. The knowledge units or commonly known as parameters are the facts and rules that can be used in order to solve the program. Lastly, the milieu is the ability to transfer computer data and information from one computer to another independently.

## Flaws

The only flaw that the API Calculus has is that it doesn't have the ability to support a security system on mobile devices such as laptops. The problem is that is any outside source tries to enter the milieu is not allowed to enter because the API Calculus requires proof that is can be a trusted source.