Glossary - alice-adventures/Alice GitHub Wiki
Glossary
In the Alice framework some words are used in a special sense, not too different from the usual sense, but with an intent.
Developer
One of the two possible collaborating roles in Alice. Developers collaborate in Alice by designing Interfaces and implementing Runners.
See also Collaboration Roles.
CLI
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.
GUI
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.
Interface
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.
Participant
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.
Plotter
Interface used by a Program to create graphical (mostly mathematical) representations. See also Plotter Interface ↗, Canvas ↗
Problem, Puzzle or Challenge
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.
Problem Source
Collection of mathematical problems or programming challenges that can be implemented as a Program in Alice. Currently, only Project Euler ↗ is supported.
Program
Implementation of a solution to a Problem, Puzzle or Challenge. Through an available interface in Alice, implements an algorithm to find the solution.
Runner
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.