Language Definition for a Notation of Computational Problems

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.

By: R. Jongerius, P. Stanley-Marbell

Published in: RZ3828 in 2012


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .