-
Notifications
You must be signed in to change notification settings - Fork 2
Glossary

In the Alice framework some words are used in a special sense, not too different from the usual sense, but with an intent.
One of the two possible collaborating roles in Alice. Developers collaborate in Alice by designing Interfaces and implementing Runners.
See also Collaboration Roles.
Command Line Interfaces are the most basic interfaces that a Program in Alice can implement to find the solution of a Problem.
See also Project Euler CLI.
Graphical User Interfaces are the most advanced interfaces that a Program in Alice can implement to find the solution, give the answer and draw interesting visualizations. In some cases, graphical interaction is the main way a Problem is solved (e.g. graphical Puzzles of Codingame).
See also Project Euler GUI.
Set of subprograms (functions or procedures) that a Program must implement.
Runners and other components also offer interfaces, thus allowing multiple
implementations. In terms of Ada, interfaces are semantically equivalent to
abstract tagged null record
s.
One of the two possible collaborating roles in Alice. Participants collaborate in Alice by developing programs to solve Problems. Can put the focus on many aspects of the solution: efficiency, visualization, complexity, multitasking etc.
See also Collaboration Roles.
Interface used by a Program to create graphical (mostly mathematical) representations. See also Plotter Interface ↗, Canvas ↗
Element from a Problem Source that must be solved with a computer program (using pen and paper is reserved to genius). Alice offers an Ada framework with two main types of interfaces: CLI and GUI.
Collection of mathematical problems or programming challenges that can be implemented as a Program in Alice. Currently, only Project Euler ↗ is supported.
Implementation of a solution to a Problem, Puzzle or Challenge. Through an available interface in Alice, implements an algorithm to find the solution.
Software artifact used to create a program that can show a Problem solution, check the validity of that solution or test it against a set of test cases.
Runners usually implement only one of the interfaces that problems can implement (CLI or GUI), but not both. Runners are specifically designed to work with a Problem Source. For example, a GUI Runner for Project Euler problems is different from a Runner for CodinGame problems. This may change in the future. See also Project Euler GUI Runner ↗ interface.