I present here four (4) arguments on behalf of symbolic processing to be used as the core of core computer science:

  1. Symbols in GrammarWare: From the history of computing and computers we can rembember the main effort needed from Alan Turing in order to create a well-established foundation for computers. His breakthrough article was: On computable numbers.  However, in his paper the commands to control the tapes of the universal machine were symbols, not mere numbers. From the theory of grammars we can find that grammars are grouped by production rules, which define terms, which contain specific symbols: either terminals or non-terminals. Some of them are only syntactic, but most have a specific semantics behind them.
  2. Symbols in ModelWare: Modelware is a popular research area. Models are created from nodes and edges. Both of them are symbols. Edges are like predicates, combining symbols with each other.
  3. Symbols in SimulationWare: From the automata theory we can retrieve logic for state machines, described often using state diagrams. Each term captured from the code and modeled as nodes and edges is then a symbol, even though as an automaton it seems to be a state transition table, or a grid.
  4. Symbols in KnowledgeWare: The cognitive science is based on cognition, human thoughts using symbols and interpretations. Even though there is some critisism about the symbolic paradigm to be used in our every-day life, it is clear that understanding program knowledge can be formualated using symbols captured from code, if we can understand and evaluate models created from code and we can evaluate meaning of the symbols either in our mind or in a tool made by a computer.

These four technology spaces are the core of the core computer science, because

  • By using GrammarWare we can parse code and compile programs into executable systems.
  • By using ModelWare we can abstract concrete implementations, either code or specific user requirements.
  • By using SimulationWare we can execute code or simulate programs. We have these two approaches in the same space.
  • By using KnowledgeWare we can create concepts and contexts for our programs in advance before ModelWare and GrammarWare.  Furthermore, by using KnowledgeWare we can learn from programs, using SimulationWare to execute or simulate them. It is learning by doing: we can fix bugs etc.

A tentative picture illustrating a symbolic paradigm, where the concept of symbol is the center of computer science:


By extending the picture into four directions it is possible for anyone to extend his/hers comprehension about our discipline, rather systematically.

In order to create an ontology for any application for computer science, symbol is a must to be regardeds as a main element.

Some links: