# Language Definition for a Notation of Computational Problems

## Abstract

Computer applications, by definition, are collections of algorithms, ranging from simple iterative loops, to more sophisticated control structures; together these algorithms enable the macro-scale functionality desired by a programmer. Any algorithm, however, describes one specific method for solving a given computational problem (CP). CPs can typically be solved by a variety of different algorithms, and each algorithm can be implemented and optimized in a variety of ways.

This document describes NCP, a notation to capture the semantic properties of computational problems, independent of algorithms. NCP descriptions can be compiled down to machine-readable forms including the Sal/Svm set-theoretic machine representation, and are intended to facilitate a variety of research efforts, ranging from serving as a source language for program synthesis, to serving as a descriptive program annotation in applications of algorithmic choice and replacement.

## Cite As

Rik Jongerius and Phillip Stanley-Marbell, "Language Definition for a Notation of Computational Problems," IBM Research Report RZ3828, Nov. 2012.

### Bibtex:

```
@INPROCEEDINGS{Jongerius2012,
author={Jongerius, Rik and Stanley-Marbell, Phillip},
booktitle={IBM Research Report RZ3828},
title={Language Definition for a Notation of Computational Problems},
year={2012},
url={https://dominoweb.draco.res.ibm.com/ae2aa9700afa134185257a5b00287d9d.html}
}
```