Talk:Procedural programming: Difference between revisions

Content deleted Content added
No edit summary
m Reverted edit by Nkosinat (talk) to last version by Graham87
 
(94 intermediate revisions by 58 users not shown)
Line 1:
{{Talk header}}
Why does this article include this tag?
{{WikiProject banner shell|class=Start|
This article should be merged with imperative programming.
{{WikiProject Computing |importance=Mid |science=y |science-importance=Mid |software=y |software-importance=Mid |early-comp=y |early-comp-importance=Mid}}
[[Procedural programming]] and [[Imperative programming]] are orthogonal concepts, and can be best left on their own. [[User:Bevo|Bevo]] 19:16, 14 Feb 2004 (UTC)
{{WikiProject Computer science |importance=mid}}
 
}}
:I've just grabbed a couple of sentences from FOLDOC to explain why. -- [[User:Kowey|Kowey]] 11:06, 3 Apr 2004 (UTC)
{{User:MiszaBot/config
 
| algo = old(365d)
::The distinction seems to be quite subtle, and could be clearer. I for one don't understand it ;). Could we say that Procedural programming describes a set of rules that are also common `design guidelines' in other paradigms, like for example imperative programming? Obviously breaking up a program in modules and having scoping rules is something common in imperative programming. --[[User:Raboof|Raboof]] 12:22, 13 Apr 2005 (UTC)
| archive = Talk:Procedural programming/Archive %(counter)d
 
| counter = 1
:::I can't pretend that I fully understand the definition either, but it would appear that procedural programming describes something which is so embedded in programming styles that it's taken for granted. Imperative languages divide their code up into files (C), or classes (C++, Java); some functional languages divide the code up into modules (Haskell, SML) and classes (OCaml) for the same reason. I assume logic programming languages do something very similar. Surely only the very simplest programs written nowadays are in the form of one monolithic main() method! :) [[User:129.215.13.84|129.215.13.84]] 28 June 2005 16:49 (UTC)
| maxarchivesize = 100k
 
| archiveheader = {{aan}}
==Rewrite==
| minthreadstoarchive = 1
Hopefully this clarifies the distinction between the procedural and imperative programming paradigms, and hopefully my understanding of these concepts is reasonably accurate. Revisions, clarifications, and corrections are welcome... -- [[User:Beland|Beland]] 07:07, 11 July 2005 (UTC)
| minthreadsleft = 0
 
}}
== Procedural Programming subset of OO? ==
 
Is procedural programming a subset of object-oriented programming? Seems to me that all OO languages are procedural as well. Is it possible to be OO without being procedural? If not, then this should be mentioned in the main article under the section on OO. --[[User:Andrew Eisenberg|Andrew Eisenberg]] 19:05, 31 August 2005 (UTC)
 
==Procedural vs. Declarative==
The concept of procedural languages is used to contrast with declarative languages. Some languages have features of both, such as LISP or other functional languages (which are not primarily declarative as the declarative language article states). The difference is procedural describes "what" a program does and "how" it does it. Declarative simply states the form of what is expected (Logic-based programming). I would suggest someone clean this up and add it/ edit this article (I have never done so, and don't know if I should dare make this my first). More detailed information can be found in Concepts of Programming Languages by Robert W. Sebesta.
OO being a subclass of procedural is a tough call. It is certainly more procedural then declarative, but OO describes a different set of ideas than procedural or declarative. (abstraction, inheritance...etc..) It seems possible that there could be an OO logic-based language, so I would say OO is not only procedural.
Also, the openning statement including functions should not be confused with mathematical function seems wrong. They should be confused / thought of as nearly the same. I am sure there is article on here further detailing this: given input a function produces a single output. -has