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.

up vote 11 down vote accepted

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).

  • 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 '13 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 '13 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 '13 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 '13 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 '13 at 8:10

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.

  • 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 '13 at 16:18
  • 1
    @joergl Realize is mostly used of concepts and purposes. We realize dreams, ambitions, visions, making something which was intangible concrete. – StoneyB Sep 27 '13 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 '13 at 5:23

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.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.