What is Zoea?

Zoea is an Artificial Intelligence that automatically generates code from a set of test cases. This lets anyone produce software without having to learn a complicated programming language.

Where does the name Zoea come from?

A zoea is the middle larval stage of some crustaceans. The developmental stages of zoea are complex and little understood.

Who develops Zoea?

Zoea is developed by the UK company Zoea Ltd. Zoea is the brainchild of Edward McDaid FBCS.

What is ZSL?

Zoea Specification Language is a simple text based language that allows Zoea users to describe test cases. ZSL is often referred to as simply Zoea.

What is Zoea Visual?

Zoea Visual is a visual programming language built on top of Zoea. It allows users to create software through test case data flow diagrams.

Why was Zoea created?

Zoea was the result of an attempt to define the simplest possible programming language that could also be learned and used with ease.

Who is Zoea aimed at?

Less than one in 200 people in the world currently develop software. It is a widely held view that more people should be able to code but traditional programming languages are too complex. Zoea can be learned quickly by almost anybody.

How long does it take to learn Zoea?

Someone with no previous experience should be able to learn the language and associated concepts in a couple of hours. A developer or someone familiar with programming concepts could learn the complete language in fifteen minutes.

How will people access Zoea?

Initially at least we anticipate that Zoea will be accessed remotely through a web browser or web app. This will include writing, compiling and running programs.

When will Zoea and Zoea Visual be generally available?

While Zoea is already functional, there is more work to do on infrastructure and tools before we can make Zoea more widely available. We are looking to partner with one or more technology companies to accelerate this process although we do not yet have a timescale for general availability.

What is the largest program you can create with Zoea?

In theory there is no limit to the size of Zoea programs that can be created. In practise it depends on how decomposable the problem is. If the problem can be broken down into sub-problems, as is the case with most software that people develop, then there is no limit.

What software development paradigm is Zoea?

Zoea represents a completely new software development paradigm called Composable Inductive Programming. In terms of existing paradigms Zoea is also clearly a declarative language.

How long does it take to compile a Zoea program?

In Zoea compilation involves writing the code as well as compiling it. Compilation speed depends both on the nature of the problem and on the available resources.

What sort of code does Zoea produce?

Zoea currently targets its own internal virtual machine. The internal language is called Zoea Internal Language (ZIL). ZIL is designed to modify itself over time and as a result is not published.

How fast is a compiled Zoea program?

Performance of compiled Zoea code is comparable with any interpreted language.

How do you run a compiled Zoea program?

ZSL provides command line tools to compile and execute programs. Zoea Visual provides input and output forms on the Run screen.

What sort of hardware do you need to run the Zoea compiler?

Zoea comprises a single controller process and any number of single threaded worker processes. All processes require an associated physical core for optimal performance. Ideally all cores should be on the same network node but cores can be distributed across nodes if network latency is low. Memory requirements are modest by current standards.

Is Zoea Turing-complete?

Yes. This can be demonstrated by a number of means. For example, test cases can easily be used to define a rewriting system. Alternatively, Zoea could be used to build a universal Turing machine.

Does Zoea have a foreign software language interface?

Yes, but it is not currently exposed. It has been tested to call software written in C.

Where is the Zoea API documentation?

There is no need for any. The document Zoea Language Specification describes the complete Zoea language.

Does Zoea support packages or modules?

Not currently but this is on the roadmap for ZSL.

Program X would be difficult/impossible to express in Zoea - does this de-value the whole approach?

Not really. Many gaps in how a particular problem can be expressed in Zoea have more to do with representation rather than mechanism. Even so, a number of language enhancements are in the backlog. That said, there will always be a tiny proportion of software that might be better written in a traditional language.

Could you write Zoea in Zoea?

Self hosting is certainly a possibility but rather Zoea aims to be the first language that completely rewrites itself.