Computer program: Difference between revisions

Content deleted Content added
No edit summary
=Data=
Line 39:
Certain insectoid autonomous robots are good examples of this type of computer that has no program in the classic sense. They are hard wired and learn from their environment.
 
==Programs and Data==
 
Some speakers distinguish between [[data]] that describes a computer program and data that does not describe a computer program; the former is called a "program", and the latter "data". However, this distinction between "program" and "data" is difficult to describe precisely, since all data can be regarded as implementing a program, depending on how it is processed.
Computer programs are generally assumed to be that part of the computer's initial state that is not [[data]]. While this distinction is trivial in most digital Von Neumann type computers, it gets much more difficult to quantify in other architectures. Are the weights in a neural network data or program? In a simulation of a neural network, they are clearly implemented as data, however they simulate program for the virtual machine. It's even more fuzzy for most analog computers. For example, is the water in a Water integrater program or data?
 
Some computing paradigms provide especially steep challenges to this distinction. The weights in a [[neural network]] are a form of "data" stored in the network, yet it is precisely these weights that (combined with the [[topology]] of the network) define the network's behavior. It is therefore unclear whether these weights serve as "program" or mere "data". Analog computers present similar challenges: should the [[water]] stored in a [[water integrator]] be regarded as program or data?
 
In the face of this difficulty, some speakers deny that the distinction between program and data is not that useful. This denial has a long history in computing, and is especially common in the programming cultures of [[Lisp]] and other [[programming language]]s that provide strong support for [[metaprogramming]].
 
==Algorithms==