13

Can realization be used to refer to the implementation of a computer program?

As in:

We will realize the program next week.

or

Listing X demonstrates a possible realization.

I was pretty sure to realize [something] cannot not be used in this sense, but instead only in the sense to become aware of [something]. However, I keep seeing realization to be used in the place of implementation quite often, also in computer science papers, so I'm not that sure anymore. Can a native speaker shed some light on this?

To add some more detail to the question: My main confusion comes from the German words for realization and implementation (Realisierung and Implementierung) which can be used fairly interchangeably in this context. The same is not true in English, and hence my worries about the correctness of the texts I write.

0

3 Answers 3

15

Note that, very strictly speaking, a program doesn't have an implementation. A program is an implementation: the implementation of a design, which follows from a specification.

"To realize" is similar to "to implement", but is a little bit broader. To realize means to achieve a plan, whereas to implement is to put into effect a very specific plan.

So for instance, a computer program can be the realization of a software entrepreneur's visionary concept. But it is somewhat awkward to say that it's the implementation of a visionary idea. Why? Because a visionary concept is not a program design.

To implement a program is to translate a more or less detailed design into code, not to translate some vague idea into code.

In other words, the idea for the product is realized by specifying it, capturing a design at various levels of detail and finally implementing it.

Programmers also speak of implementing specifications. For instance, "This e-mail server contains an implementation of the IMAP4 protocol" even though the IMAP4 specification is not a design for how to write IMAP4 supporting code in that mail server. Basically, any document that gives precise, testable requirements for the external behavior of a data processing system is susceptible to being implemented. We speak of the duality of interface (how the world communicates with some piece) vs. implementation (how the piece works internally).

7
  • I don't agree with the first part of your "To implement a program is to translate a more or less detailed design into code, not to translate some vague idea into code." The transition from the idea or design stage into the final code would be writing or creating the program. But implementing the program would mean that the finished version is made live and put into action. The program could be fully finished but never implemented.
    – toandfro
    Sep 26, 2013 at 23:50
  • I was thinking of situations, for example, where a perfectly workable program had been written but the company changed its mind about what functionality it wanted, and decided on a different strategy, therefore leaving the program to (metaphorically) gather dust on the shelf instead of implementing it. I can quite see that a programmer may struggle with the idea that his/her creation may not, after all, be useful :-)
    – toandfro
    Sep 27, 2013 at 2:02
  • 3
    @toandfro The words we use for putting a finished program into action are to deploy, to ship, to install, et cetera. The deploy or put into effect meaning of implement is not relevant in this question; it is about the development of the program code.
    – Kaz
    Sep 27, 2013 at 4:10
  • @snailboat & Kaz I defer of course to your industry-specific use of the word, but it is an excellent example of narrow-field usage being somewhat at odds with the normal English language meaning.
    – toandfro
    Sep 27, 2013 at 5:43
  • @Kaz: So, if I understand you correctly, the two examples in my question are incorrect or odd usages of to realize in your opinion? Or would you consider one of them to be fine?
    – joergl
    Sep 27, 2013 at 8:10
0

Realize can also have the more direct sense of "make real," and is often used (and sometimes overused; your first sentence probably should use "implement" to avoid sounding self-important) in this sense in technical literature. See http://www.thefreedictionary.com/realize for more. In the computer science field, a more precise term is "reification": see http://en.wikipedia.org/wiki/Reification_(computer_science) for more information.

3
  • Interestingly, to implement is not listed in the thesaurus of thefreedictionary for to realize, which supports my assumption that the two cannot be used interchangeably. As far as I understand, reification is more abstract and, for instance, refers to how a programming concept is supported a language. I haven't seen it as a synonym for the implementation of a program. But then again, I'm no native speaker.
    – joergl
    Sep 26, 2013 at 16:18
  • 1
    @joergl Realize is mostly used of concepts and purposes. We realize dreams, ambitions, visions, making something which was intangible concrete. Sep 27, 2013 at 1:07
  • 1
    I agree that they can't be used interchangeably. My point, which I can see I didn't make too clearly, is that implement is the better word. Realize has the meaning of motivating an idea into reality. As such, it has a similar meaning to reify, but reify has the slightly more specific idea of making an abstraction more concrete. These words tend to be used more in the theoretical aspect of IT. If you're going to write a program from a plan, implement is the normally-used word, because it has the specific meaning of putting a plan into effect.
    – BobRodes
    Oct 6, 2013 at 5:23
0

In a nutshell: A realization of XYZ is called an implementation.

Update

Now that someone downvoted, let me show evidence: Wikipedia: Implementation:

Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.

Update

Wikipedia: Instruction set architecture:

A realization of an ISA is called an implementation.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .