Accelerating Zoea Regression Testing
09 Nov 2024
A simple expedient can speed up Zoea regression testing by up to two orders of magnitude.
Towards a Self-Optimising Codebase
07 Nov 2024
Optimisation of Zoea knowledge sources could be automated using evolutionary programming. This is facilitated by Zoea's blackboard architecture.
AIAI 2024 Conference Paper
20 Aug 2024
Zoea recently presented a peer-reviewed research paper entitled Test Case Features as Hyper-heuristics for Inductive Programming at the AIAI 2024 Conference in Corfu, Greece. A version of the paper is also available on the Cornell University preprint server at arXiv.org.
The Instruction Subset Hypothesis
23 Jun 2024
Instruction subsets and related approaches are underpinned by a hypothesis that making generated code more closely resemble that produced by humans also reduces the effort required to find solutions. The results of several studies provide dramatic confirmation of this idea, however it's still not totally clear why this is so.
Developer Half-Life and the Value of AI Code
02 Jun 2024
Developer half-life is the time required for 50% of a developer's code to be eroded by later commits. This measure correlates directly with developer experience and represents a proxy metric for code value. In a mixed human-AI codebase, half-life could be used to assess the relative value of AI generated code.
Is Natural Language Really the Future of Coding?
01 Mar 2024
Tools built on top of large language models can produce impressive looking code in response to text prompts. Is this enough to enable non-technical people to produce real software?
Partial Evaluation of Knowledge Sources
12 Jan 2024
Zoea has used a program optimisation technique called partial evaluation to produce many additional variants of its knowledge sources - specialised for different instruction subsets. This improves Zoea runtime performance by over an order of magnitude.
Amplifying Tacit Knowledge
11 Sep 2023
Instruction subsets generalise beyond the training set due to increased instruction co-occurrence variety obtained through clustering. Zoea uses the same principle to further boost generalisation significantly in a process called amplification.
Compilation of Instruction digrams
28 Jul 2023
Implementing instruction digrams in Zoea turns out to be a simple matter of creating additional instruction subsets. These are produced up-front, meaning that instruction digrams have zero additional processing overhead at run-time.
Instruction digrams
21 Jun 2023
Zoea has come up with another simple way to make the search space for inductive programming even smaller. This time we use instruction digrams to shrink the problem by another 1000 times.
New Paper on Instruction Digrams Released
31 May 2023
Zoea have extended the instruction subset approach with a new technique called instruction digrams. These capture the frequency distribution of direct instruction application in human originated code. The result is a further reduction in the size of the inductive programming search space of several orders of magnitude. The approach is described in a paper that is available on the arXiv.org pre-print repository at Cornell University.
Using Large Language Models with Zoea
16 May 2023
Large language models show promise in automating the production of software however significant hurdles remain. Plugging Zoea into the workflow makes a lot of these problems go away.
Defusing the Combinatorial Explosion
10 Mar 2023
The combinatorial explosion has been one of the biggest challenges in AI since its inception. Now, Zoea has found a way to dramatically shrink the problem.
8 Mar 2023
Zoea presented a paper at the 15th International Conference on Agents and Artificial Intelligence, ICAART 2023 which was held in Lisbon, Portugal, 22 - 24 February 2023.
The paper titled Shrinking the Inductive Programming Search Space with Instruction Subsets describes an important breakthrough in addressing the combinatorial explosion that will enable Zoea to generate large programs in less time - by many orders of magnitude. A pre-print of the paper is available on the arXiv.org repository at Cornell University.
Synthetic Test Cases
18 Jan 2023
Zoea uses synthetic test cases to represent internal data transformations. What are they and why are they so useful?
Coding Isn't a Numbers Game
19 Dec 2022
There is a fundamental disconnect between what is regarded as success when building an AI as opposed to code. This has serious implications for AIs that produce code.
Can Software Escape Zipf's Law?
15 Oct 2022
Nobody knows why the rank frequency distribution of instructions in code follows Zipf's law. But does it have to be this way?
Characterising Code Directly from Test Cases
18 Jun 2022
Computer programmers can frequently identify the corresponding code directly from one or more test cases. How can we get computers to do the same?
Zoea Ported to Amazon EC2
12 Apr 2022
Zoea - the revolutionary AI that generates code automatically from test cases - has been ported to Amazon Elastic Compute Cloud (EC2). In the process the core Zoea architecture has been optimised to make it completely asynchronous and stateless. This enables Zoea to efficiently employ any number of cores with extremely high utilisation, and helps to linearise the economics of Zoea resource investment.
As a result Zoea is now able to leverage virtually unlimited computing resources allowing it to compile much larger and more complex programs in less time.
Prolonging the Shelf Life of Software
21 Mar 2022
Even the best software begins to degrade almost as soon as it is written. Why is this and what if anything can we do about it?
Anatomy of a Zoea Knowledge Source
30 Jan 2022
Zoea contains a lot of knowledge about programming language concepts and how they can be utilised to produce code. It turns out that the way this knowledge is represented and structured is surprisingly simple.
06 Dec 2021
Emergent behaviour is a characteristic of many AI systems. So what exactly is it and how important is it that we understand what's going on?
15 Nov 2021
Composable inductive programming is the next stage in the evolution of software development. What does this mean for AI?
29 Oct 2021
Zoea have a short paper at the Forty-first SGAI International Conference on Artificial Intelligence AI-2021 (14-16 December 2021). The paper Knowledge-Based Composable Inductive Programming outlines Zoea from an AI perspective.
29 Sep 2021
Test cases play a central role in the automatic generation of software using Zoea. While test cases are conceptually simple, Zoea uses a number of variants so it is useful to understand their different characteristics and the relationships between them.
16 Sep 2021
Software complexity is a measure of how difficult it is to produce a piece of code. Does this complexity come from the problem that is being solved or from the programming language that is used, and how can we tell?
07 Aug 2021
String rewriting systems are a type of program that converts text according to a set of rules. They have a wide range of practical uses but also serve as an important theoretical model for computer science. So how would you code a string rewriting system in Zoea?
17 Jul 2021
Can Zoea really be used to create software of any size? A study recently published on arxiv.org has the answer.
96,000 programs of different sizes were randomly generated and turned into test cases. The test cases were then used to regenerate versions of the original programs using Zoea. The results show linear relationships between the number of intermediate values and program size, and between the number of test cases and program size.
18 Jun 2021
Zoea have released a series of video tutorials for the Zoea Specification Language (ZSL) and Zoea Visual on YouTube.
https://www.youtube.com/playlist?list=PLDSPhHvPoOtpIupEQUpCWgSLpTUy6No5-
16 Jun 2021
There is now a Zoea Visual page with a number of examples on Rosetta Code. Rosetta Code is a popular programming language comparison site where solutions to a wide range of programming tasks are provided in many languages.
14 Jun 2021
People have managed to build AI systems that do lots of interesting and useful things. Yet building an AI that can code has proved elusive - until recently. Zoea is the first and so far the only AI that enables people to produce software of any size. So why has it taken so long for AI to learn to code?
30 Apr 2021
Algorithms - particularly in the context of AI - have been coming in for a lot of negative attention lately. Maybe it's time for people to take a less hands-on approach in their creation.
23 Feb 2021
It isn’t difficult to show that the Zoea programming language is ‘Turing complete’. However, this raises some interesting questions about the nature of programming languages.
12 Jan 2021
Future AI systems ought to be able to write their own code. Zoea has the potential to make that possible.
10 Dec 2020
Zoea have made available a user guide and a set of examples for Zoea Visual. The user guide provides a detailed description of the Zoea Visual language and case editor tool. The examples document includes 27 simple Zoea Visual programs together with a discussion of the approach and implementation in each case. The core Zoea language definition document has also been updated.
05 Dec 2020
Zoea is an AI that lets anyone who can describe a problem as a set of input and output examples produce real code. Some might ask can Zoea really produce all the programs that a conventional language can just by writing test cases? The short answer is yes.
03 Nov 2020
The Zoea Visual programming language now allows developers to define programs using a hierarchy of embedded test cases. This significantly reduces the number of test cases required to define large and complex programs.
21 Sep 2020
Zoea Visual is described in detail in a new research paper recently uploaded to the arXiv.org repository at Cornell University. The paper covers the design of the visual language and associated tools. It also shows how the combination of inductive and visual programming represents a new approach that is easy to learn, usable and expressive.
10 Sep 2020
Zoea is already one of the simplest programming languages in existence. In order to improve its usability even further we have recently added a graphical programming language variant called Zoea Visual.
01 Aug 2020
Many of the facts and events that we observe can have multiple and even inconsistent interpretations yet people are generally able to make sense of it all. So how does an AI like Zoea deal with this kind of messy complexity?
17 Jul 2020
Zoea is the first AI that can automatically generate software of any size from a set of test cases. This is a big deal that will ultimately transform the nature of software development forever. But what about all the software in other languages that already exists?
30 Jun 2020
AI is expected to have a significant impact on coding. One such AI is Zoea which creates software automatically from a specification that looks like a set of test cases. This will enable many more people to produce software but it will also fundamentally change our relationship with code.
05 Jun 2020
When we learn a new programming language there are often concepts that we can bring along from previous languages we have encountered. For example, most developers can articulate the guidelines concerning what constitutes a good variable name.
These rules have evolved over a long period of time and apply with variations to virtually every language. Similar sorts of guidelines exist for other programming language elements such as control structures. But what if your new language doesn't have any variables or control structures?
31 May 2020
This article briefly explains the main concepts and terminology used in Zoea.
Program - Every piece of software that is produced with Zoea is called a program. Every program has a single input and a single output. Inputs and outputs may be a single value like a string or a number, or they may be an array that holds many values. If a program needs to have multiple inputs or multiple outputs then the developer needs to use arrays for these.
Test case - Zoea programs are written by a developer as a set of one or more test cases. A test case is a scenario that describes exactly what should happen when a user runs a program. A simple test case might consist of a specific input (X) and a specific output (Y). This can be interpreted as saying that for this program if the user inputs X then the program will output Y.
19 May 2020
Zoea have published another research paper to the arXiv.org preprint server at Cornell University. The paper entitled "Quantifying the Impact on Software Complexity of Composable Inductive Programming using Zoea" presents results that show Zoea is simpler than conventional programming languages.
The paper includes analysis that compares Zoea with eight popular conventional programming languages in terms of the size of their grammar and the number of keywords. This shows that the Zoea language is between 25-30% as complex as the simplest conventional languages.
26 Apr 2020
There is now a Zoea page with a number of examples on Rosetta Code. Rosetta Code is a popular programming language comparison site where solutions to a wide range of programming tasks are provided in many languages.
04 Apr 2020
Some might say that the last thing the world needs is another programming language. There are literally thousands of them. To non-programmers they are all equally abstruse. Programmers on the other hand often feel very strongly about which is better or worse. Clearly they can’t all be right.
It’s hard to believe but virtually all programming languages were created in an effort to make programming easier for people. Remember that programming languages only exist for the benefit of humans - computers would get by just fine without them. So the evolution of programming languages has proceeded in a series of mostly small steps such as “lets use square brackets instead of round ones.” This is the reason why all programming languages are fundamentally so alike.
03 Dec 2019
Zoea have made available version 1 of their developer guide. This includes the complete syntax for the Zoea language and the simple rules governing how various syntactic elements can be combined.
The manual which consists of 7 pages is organised around the eight reserved words in the Zoea language. Comprehensive examples of how each keyword can be used are provided.
20 Nov 2019
Zoea have published their first research paper on the arXiv.org preprint server at Cornell University. Entitled "Composable Inductive Programming Without Limits" this paper describes the unique Zoea approach to automation of coding through AI.
Inductive programming which is the automatic generation of software from input-output examples has had a long history of sporadic progress. Until now its widespread adoption has been held back by its inability to cope with larger programs. Zoea incorporates a number of advances that overcome this problem. These include the ability to combine smaller inductive programs to form larger ones as well as the capability to specify any number intermediate values between inputs and outputs.
Defusing the Combinatorial Explosion
10 Mar 2023
Anatomy of a Zoea Knowledge Source
30 Jan 2022
The Secret Life of a Zoea Test Case
29 Sep 2021
Where Does Software Complexity Come From?
16 Sep 2021
What Makes Learning To Code So Hard for AI?
14 Jun 2021
23 Feb 2021
Company No: 12128693 Registered Address: Zoea Ltd. 20 - 22 Wenlock Road, London N1 7GU
© Copyright 2023. All Rights Reserved. Zoea is a trademark of Zoea Ltd.