Talk:Computer program/Archive 4
![]() | This is an archive of past discussions about Computer program. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 | Archive 2 | Archive 3 | Archive 4 |
Defined as a "collection of instructions" confusion
It seems counter intuitive to consider computer programs as non-sequential. I'm assuming "collection" refers to declarative programming languages. I recommend this nuance be explained in the lead. Timhowardriley (talk) 16:02, 14 October 2015 (UTC)
- Hello! I'm not really sure what's so wrong with using "collection of instructions"? Surely, we might want to explain it further, but using "sequence" actually isn't better. Almost no program is a plain linear sequence of instructions – just think of various libraries, for example. Moreover, the sequence is only one element of structured programming, besides the selection and iteration. — Dsimic (talk | contribs) 16:22, 14 October 2015 (UTC)
- Soon after the definition was changed, this edit was made: https://en.wikipedia.org/w/index.php?title=Computer_program&diff=685664350&oldid=685658307 I don't think I'm the only one scratching my head. Timhowardriley (talk) 16:31, 14 October 2015 (UTC)
- See turing machine: "Despite the model's simplicity, given any computer algorithm, a Turing machine can be constructed that is capable of simulating that algorithm's logic." A turing machine has an initial state. The sequence has a starting point. Timhowardriley (talk) 16:34, 14 October 2015 (UTC)
- Regarding "Surely, we might want to explain it further": What words would you suggest? Timhowardriley (talk) 16:38, 14 October 2015 (UTC)
- (edit conflict) That particular edit seems perfectly fine to me. Speaking about the Turing machine, the tape it operates on is just the data, while the instruction table is the actual program it executes. Thus, it doesn't represent a plain sequence of something, if you agree. At the moment, I don't see how to explain the "collection of instructions" further and whether we actually need to do that, but I'm open to discussing any proposals. — Dsimic (talk | contribs) 16:46, 14 October 2015 (UTC)
- I changed the definition in response to #Less specific intro above. Only the simplest of programs can be said to be "sequences" in any interpretation of that claim. Some valid ways to claim that programs are sequences would be:
- The machine code is stored as a sequence of instructions. (But that's no longer strictly true today, now we have fancy executable file formats and dynamic linking).
- The execution trace of a program is a sequence. (But that's not how we "intuitively" think of a program, and is no longer true if we introduce multithreading or other forms of concurrency).
- The source code of high-level languages is usually thought of as an abstract syntax tree (not as an abstract syntax sequence). The semantics of a program can be though of as a control-flow or dependency graph, or in terms of other fancy (fancier than a sequence, that is) mathematical structures.
- In the end, I think, we just want to say that "a program is a bunch of instructions" and not go into to much more detail in the lede (elaborating in the body would be fine). And "collection" seems like a sufficiently formal synonym of "bunch" so that it can pass as an encyclopedic definition, and with just the right amount of vagueness, so that we neither say anything we don't want to say, nor say nothing at all. —Ruud 17:18, 14 October 2015 (UTC)
- I suggest the following experiment: Google "computer program is a collection of instructions." Google "computer program is a sequence of instructions." Timhowardriley (talk) 17:56, 14 October 2015 (UTC)
- I suggest the following experiment instead: Google "we did land on the moon." Goole "we did not land on the moon." —Ruud 18:08, 14 October 2015 (UTC)
- This was a less than nice thing to say. Timhowardriley (talk) 18:24, 14 October 2015 (UTC)
- Please, let's keep in mind the existence of WP:GOOGLEHITS guideline, which of course isn't directly related, but applies to a certain extent. — Dsimic (talk | contribs) 18:29, 14 October 2015 (UTC)
- WP:GYNOT would be the applicable guideline here. Google "comparisons" are problematic because they often give silly results depending on the exact way you phrase and interpret your queries. In this case we in particular don't know how many of those hits correspond to people simply having copied the Wikipedia definition, which has been in the article for several years, I think. And we're supposed to be educating people here, not simply repeat the same (mis)information that has been spreading among the hoi polloi. —Ruud 18:53, 14 October 2015 (UTC)
- May I politely assert that I thought of using Google comparisons because I read this talk message: "Top hits on Google Books: [7] [8]. —Ruud 00:13, 13 October 2015 (UTC)". I know Ruud didn't mean to illustrate popularity. But when I made my suggestion to use Google, I should have said, "Google Books". Books.google.com matches published material defining Computer program as a sequence. Nonetheless, from my earliest computer education until I learned about Declarative programming, computer programs were sequential. They had a starting point, followed a sequence of instructions, then outputted the results. However, declarative programming "expresses the logic of a computation without describing its control flow." Declarative computer programs are sets of instructions; they don't express a computer algorithm. I'm going to keep thinking about how to explain the new definition of computer program to young readers of this article. Timhowardriley (talk) 17:49, 15 October 2015 (UTC)
- Even programs as simple as computing a greatest common divisor or summing a list of numbers aren't sequential, as they require iteration or recursion. Only if you take the execution trace point-of-view can those said to be sequential (which I don't think is the mental model most people would have when thinking about programs), and then only because they don't use any form of concurrency (which is getting increasingly common nowadays). I don't mind including a few white lies in the lede, so as to keep it sufficiently simple (such as that programs are made up from "instructions"; radical declarative programmers would insist they are made up from declarations, and they are right to some degree, but that discussion belongs in the subsection on Programming languages, not in the lede). But claiming that programs are sequences seems to be making a rather strong commitment to how programs are stored and executed, and one that can be easily avoided by using slightly different terminology. —Ruud 18:09, 15 October 2015 (UTC)
- I can reconcile iteration and recursion as sequential activities. Concurrency is an optimization that compiler and hardware designers provide – well, mostly. Pedantic declarative programmers probably appreciate the new definition. My motive is to effectively communicate computer program to the largest audience possible. Timhowardriley (talk) 18:34, 15 October 2015 (UTC)
How computer programs relate to algorithms
The following sentence is vague: "A small part of a computer program that performs a well-defined task is known as an algorithm." What does "a small part" mean? I found a textbook definition of algorithm and replaced this sentence with the definition. I also used words to couple algorithm to computer program. "A programmer implements algorithms with computer programs." Okay, maybe I should have written, "Programmers generally use algorithms to build programs." But that was reverted, also. What's wrong with my edits? Timhowardriley (talk) 15:37, 17 October 2015 (UTC)
- I moved Ruud's personal talk page comment to here for discussion: He said, "Concerning the third paragraph of the lede of Computer program: the intention of mentioning algorithms there is to succinctly relate that concept to computer programs and direct the reader to the article Algorithm for further information. It does not intend to give a precise definition of an algorithm, as the quoted source tried to do.
- —Ruud 16:43, 17 October 2015 (UTC)" Timhowardriley (talk) 17:47, 17 October 2015 (UTC)
- However, I believe more specific information is better, if it's available. And a textbook definition of algorithm best serves the reader. There still can be a Wikilink to its article. Timhowardriley (talk) 17:58, 17 October 2015 (UTC)
- Again, I moved Ruud's personal talk page comment to here for discussion: He said, "'Computer programmers implement algorithms with computer programs.' (or 'Programmers generally use algorithms to build computer programs.') is an awkward sentence. It doesn't feel natural in that paragraph. If I try to put the phrase 'computer program' back into 'An algorithm is a clearly specified set of simple instructions to be followed to solve a problem.', then I end up with almost the original sentence. —Ruud 18:59, 17 October 2015 (UTC)" Timhowardriley (talk) 20:34, 17 October 2015 (UTC)
- Ruud, I interpret your viewpoint as: the current sentence, although a little white-washed, is sufficient enough information for the broadest audience to grasp, considering it's in the lead. Is this correct? Timhowardriley (talk) 20:40, 17 October 2015 (UTC)
- Yes, I think it's accurate enough for its purpose. I don't immediately see a good way to make that sentence more precise, without it becoming very long-winded. But I'm open for suggestions. —Ruud 20:47, 17 October 2015 (UTC)
Number of digits in Analytical Engine store/memory words
Timhowardriley There seems to be support for both 40 and 50 digit words in the Analytical Engine. I've started a discussion at Talk:Analytical Engine#Number of digits in store/memory words. As to what Babbage was thinking with such a large word size... My guess is he hadn't thought of floating point arithmetic, and 40 or 50 digits was what he thought was needed to cover the useful range of magnitudes of calculations. Rwessel (talk) 17:28, 30 October 2015 (UTC)
- Very good. Timhowardriley (talk) 17:46, 1 November 2015 (UTC)
"Declarative programming language" is an Oxymoron
This text ----- Computer programs can be categorized by the programming language paradigm used to produce them. Two of the main paradigms are ... Imperative programming languages specify a sequential algorithm using declarations, expressions, and statements ... Declarative programming languages describe what computation should be performed and not how to compute it...
has a problem with the English language.
The word "program", handed down to us the ancient Greeks, is used for sequences of actions: what is to be played by the orchestra and in what order, the meeting rooms and their time, and so on.
We can write Fortran and Fortran language and Fortran programming language
The "-ing" attached to "program" turns it into an adjective, describing an attribute of "Fortran" - sequence.
But the "programming" following "Declarative" above is an oxymoron - there is no sequence. Unless, of course, the goal is to revise the English meaning of "program".
This article should be split into two articles:
-- Computer imperative (programming) languages -- Computer declarative languages
If you look at the table of contents, much of the article applies only to programming languages; a split would benefit both sets of users. 50.136.242.131 (talk) 05:48, 11 January 2016 (UTC)
- It's okay to not be too technical. Timhowardriley (talk) 21:29, 11 January 2016 (UTC)
- Whatever the roots, "program" is used to describe a wide spectrum of techniques, including the declarative ones. You'd be hard pressed to find anyone, for example, to argue that Prolog is not a programming language or that something written in Prolog is not a program. Rwessel (talk) 06:03, 12 January 2016 (UTC)
Added information needs development
I removed "(an intermediate representation of the decoded code, such as Python's .pyc files, may be stored for efficiency purposes)" and "(It is possible to build a REPL on top of a compiler, as the Scala REPL does, but this involves the overhead of full compilation.)" because the extra information needs to be developed. Timhowardriley (talk) 19:13, 27 March 2017 (UTC)
- I also removed "(less relevant these days, when interpreters are typically redistributable without charge)". This is a point of view. And I removed "which compile Java code to native machine code ahead of time,". Information should be presented in pieces, not one long concept. Timhowardriley (talk) 19:22, 27 March 2017 (UTC)
DATA COMMUNICATION
what is the future of networking ?
ANS -based on the progress mode in the recent past networking seems to be moving ahead toward nomadic computing smart spaces. Nordic computing refers to the technology that enables and users who travel from place to places to gain access to internet services in a transparent way . the availability of lightweight, inexpensive . high performance , portable devices and availability on internet has enabled us to become normads. — Preceding unsigned comment added by 106.203.31.57 (talk) 15:52, 9 October 2018 (UTC)
Moved two 'Simultaneous execution' paragraphs to talk
I moved these two paragraphs to talk because the sentences contain multiple subjects and need to be shortened.
Multiple lines of the same computer program may be simultaneously executed using threads. Multithreading processors are optimized to execute multiple threads efficiently, due to having more than one processor which can either be a Multi-core processor or a computer that has more than one CPU installed. These Multi-core processors will have multiple cores where each core is a processor that has it own set of threads. Multi-core processors are actually more energy efficient than a single core CPU, because multi-core processors have certain cores that are more energy efficient, which in turn with the ability to multitask and delegate tasks to different cores actually decreases the amount of energy used by the CPU.
Most programming languages include a certain Library (computing) that allows programmers to now execute their code in parallel using multithreading. Once a program is properly parallelized by the programmer, its up to the user of the software's CPU to determine which cores and threads are used. After the user reaches a certain amount of cores in their CPU, Diminishing returns occurs where the increase in core count has very little if any effect to increasing the speed of the execution of the program, these diminishing returns can be measured by Amdahl's law. Timhowardriley (talk) 13:56, 9 November 2018 (UTC)
"Computervprogram" listed at Redirects for discussion

A discussion is taking place to address the redirect Computervprogram. The discussion will occur at Wikipedia:Redirects for discussion/Log/2020 May 16#Computervprogram until a consensus is reached, and readers of this page are welcome to contribute to the discussion. TheAwesomeHwyh 00:20, 16 May 2020 (UTC)
A Commons file used on this page or its Wikidata item has been nominated for deletion
The following Wikimedia Commons file used on this page or its Wikidata item has been nominated for deletion:
Participate in the deletion discussion at the nomination page. —Community Tech bot (talk) 14:19, 19 October 2020 (UTC)
Moved Software Engineering's definition of computer program to talk
Moved removed this from the lead:
In software engineering, code refers to computer instructions and data definitions expressed in a programming language or in a form output by an assembler, compiler, or other translator to express a computer program in a programming language.[1]
The lead should be a road map to the rest of the article. Moreover, why is the citation the entire book? Timhowardriley (talk) 17:45, 11 April 2019 (UTC)
References
- ^ ISO/IEC/IEEE International Standard - Systems and software engineering. ISO/IEC/IEEE 24765:2010(E). pp. vol., no., pp.1-418.
Expand sections that are just stubs
The good article reviewer implied that each section should be balanced. He said, "Boot program and Embedded programs consists of only a few sentences each." Any help is appreciated. Timhowardriley (talk) 19:40, 28 October 2021 (UTC)
See also
Hey, Timhowardriley! You've reverted my edit in see also section without any justification. For such an important topic as computer program is, see also here is a pile of garbage. Why are a bunch of programming langs here? Utf-8? Bill Gates?! Please see WP:SEEALSO, and remove these junk, it doesn't help any reader. And to keep this more widespread I'll ping @David Eppstein:, who's the only admin I know knowledgeable in math and compsci.
Cheers. 37.214.79.163 (talk) 10:50, 13 February 2022 (UTC)
- Hi 37.214.79.163. I built the 'See Also' list by extracting all the unique wikilinks from the articles 'Software' and 'Computer programming'. Personally, I use it as a reading list to keep up-to-date on technology. Timhowardriley (talk) 11:20, 13 February 2022 (UTC)
- I removed 'Bill Gates'. Another editor added Utf-8 here: https://en.wikipedia.org/w/index.php?title=Computer_program&diff=1069134714&oldid=1069102066 . Timhowardriley (talk) 11:31, 13 February 2022 (UTC)
- I can understand it, but by having so many links here you make it unreadable. If people would like to read about php, they can, but if it's not in text, it shouldn't be cluttered between dozens of other links. Ideally See also should be as small as possible, with not all relevant links possible as such list would be huge. You can, of course, place all the links to all the programming languages or algorithms or important people here, but that's not a purpose. If it's not linked inside lengthy article, maybe it just shouldn't be here? 37.214.79.163 (talk) 16:49, 13 February 2022 (UTC)
- I removed 'Bill Gates'. Another editor added Utf-8 here: https://en.wikipedia.org/w/index.php?title=Computer_program&diff=1069134714&oldid=1069102066 . Timhowardriley (talk) 11:31, 13 February 2022 (UTC)
- @Timhowardriley: The see also list is way way too long. And extracting all wikilinks from an article is not how they should be built. Generally, see also links are for topics that should be covered in the main text of an article, but aren't. There should only be a few of them (at most maybe half a dozen, often zero) in a well developed article. Please take a chainsaw to your list, or stop policing it and let others do so. —David Eppstein (talk) 17:38, 13 February 2022 (UTC)
- Please don't encourage others to arbitrarily chainsaw. I consider every item germane. Here's another article with a long 'See also' list: Graph_theory#See_also. Timhowardriley (talk) 17:51, 13 February 2022 (UTC)
- That list is also too long, for the reasons David Eppstein explained, and because it piles additional links on top of the no less than five lists of links with which it begins. XOR'easter (talk) 19:04, 13 February 2022 (UTC)
- Please don't encourage others to arbitrarily chainsaw. I consider every item germane. Here's another article with a long 'See also' list: Graph_theory#See_also. Timhowardriley (talk) 17:51, 13 February 2022 (UTC)
- Free information is good. Therefore, I moved the list to my user page here: User:Timhowardriley#See_also Timhowardriley (talk) 12:04, 16 February 2022 (UTC)
Citation organisation, uncited claims
A bit surprised to see some textbooks like Tanenbaum defined locally many times, rather than put into a list of Sources just once and reused with sfn links or something similar. A program written that way would attract ... quite a bit of wry amusement, I suspect. Meanwhile, if this article is a serious GAN candidate, some attention ought to be given to the multiple uncited claims in the article. Chiswick Chap (talk) 15:52, 26 March 2022 (UTC)
- Whereas only two of Andrew S. Tanenbaum's books are referenced, each page number is individually cited. If there is an efficient way to express this, then an editor in good faith will make the change.
- The "wry amusement" opinion is not germane.
- The eight citation needed tags cover seven sections and constitute Wikipedia:Tag bombing. The article may have a referenced source for the entire paragraph, but not every sentence in the paragraph is cited. One fact was tagged that is supported in this wikilinked article: X86_assembly_language#Instruction_types. Another trivial fact was tagged that is just a transition sentence to the next section.
- Wikipedia:Tag bombing says, "Adding tags to articles should be accompanied by sufficient reasoning on the tagged article's talk page." This talk page reasoning is insufficient. Timhowardriley (talk) 20:40, 26 March 2022 (UTC)
A Commons file used on this page or its Wikidata item has been nominated for deletion
The following Wikimedia Commons file used on this page or its Wikidata item has been nominated for deletion:
Participate in the deletion discussion at the nomination page. —Community Tech bot (talk) 06:59, 30 June 2021 (UTC)
- I moved it to the Computer Programming paragraph. Timhowardriley (talk) 09:37, 8 October 2021 (UTC)
- I removed it because I think it's a fake. Brian Kernighan said in a Linux Journal interview that Dennis Ritchie invented the language. Timhowardriley (talk) 02:19, 9 October 2021 (UTC)
- I stand corrected. It's real. Timhowardriley (talk) 07:19, 9 October 2021 (UTC)
Housecleaning for computer program
moving from User talk:Fgnievinski:
You did indeed provide substantial housecleaning for computer program. I understand the logic to fork all the examples to imperative programming and declarative programming. However, I reverted your forks with apprehension. One good article criteria is the article should be thorough. Because the computer program subject is so vast, being thorough results in a large article. Maybe there's a way to entice the reader to the examples so computer program can be both thorough and bite-sized. Timhowardriley (talk) 22:03, 25 May 2022 (UTC)
- As per Wikipedia:Summary style, Computer program#Imperative languages and Computer program#Declarative languages should not have more detail than Imperative languages and Declarative languages, respectively. Furthermore, there are also other articles, such as Computer programming , Programming languages, and History of programming languages, where the comparison of programming languages would fit better. fgnievinski (talk) 23:22, 25 May 2022 (UTC)
- I hope this edit satisfactorily solved the dilemma. Timhowardriley (talk) 01:36, 26 May 2022 (UTC)
Most of the code throughout the article, specifically around Computer_program#Object-oriented_programming should be removed per WP:NOTREPOSITORY. Articles aren't the place for a code dump of one's favorite language. WikiLinuz {talk} 🍁 03:21, 11 April 2022 (UTC)
- This post is a retribution because I failed this editor's GA request. See Talk:Binary_search_tree/GA2#Final_assessment. Timhowardriley (talk) 05:14, 11 April 2022 (UTC)
- Doesn't change the fact that you were advocating for code farm, that's the only purpose this post serves - to make you aware of WP:NOTREPOSITORY. Definitely not a
retribution
. WikiLinuz {talk} 🍁 06:00, 11 April 2022 (UTC)- Your personal statement of "I'm sorry, but I don't think you're well-versed with our policies on computer science ..." displays anger. Timhowardriley (talk) 06:08, 11 April 2022 (UTC)
- No, as quoted, and without context, it does not display anger. · · · Peter Southwood (talk): 07:40, 10 June 2022 (UTC)
- Your personal statement of "I'm sorry, but I don't think you're well-versed with our policies on computer science ..." displays anger. Timhowardriley (talk) 06:08, 11 April 2022 (UTC)
- Doesn't change the fact that you were advocating for code farm, that's the only purpose this post serves - to make you aware of WP:NOTREPOSITORY. Definitely not a
Article's definition sentence.
I wish an author would publish, "Computer programs are the instructions for computers." Who could argue with this? However, computer textbook authors define computer program within the context of their book. Unfortunately, computer science now-a-days is so broad that any definition is going to have a flaw to at least one editor of this article. Dr. Wilson's definition best describes this article's essence. It succeeds because it limits the scope of the definition to modern computers, and it's broad enough to include any computer from the 50s onward. I like that it first defines the scope by using the passive voice. An active voice sentence would begin with "A computer program is ..." This is going to have a serious flaw to someone. It would need to be very long to include the broad spectrum of nuances. Timhowardriley (talk) 21:19, 13 November 2021 (UTC)
- The recent reversions of my edit to the lede are in violation of the WP:DONTREVERT guidance and is, by the editor's own admission, edit warring. For all interested parties, please refer to WP:WHENNOTCITE: "Citations are often omitted from the lead section of an article, insofar as the lead summarizes information for which sources are given later in the article," which is the case here. Also, refer to virtually any article here (e.g. Common Sense, Stupidity, or Rock (geology)) to see that properly formatted ledes comprise the theme of the given article, not some collateral theme. Accordingly, for anyone who's dissatisfied with this article's current lede, please edit it in a manner that begins with, "A computer program is..." A lede that otherwise starts with an explanation of what a computer is smacks of circumlocutory foolishness. See MOS:LEAD as needed. --Kent Dominic·(talk) 05:40, 14 November 2021 (UTC)
- See also WP:REFCLUTTER. --Kent Dominic·(talk) 05:55, 14 November 2021 (UTC)
- Thank you for finding a sourced definition: https://www.thefreedictionary.com/computer+program . I'm fine with calling a computer program a sequence of instructions; however, declarative programmers have raised valid issues. By the way, your intimidating message on my talk page was counter productive. Timhowardriley (talk) 07:38, 14 November 2021 (UTC)
- IMHO, the definition is dicey and the cite is superfluous. Let declarative programmers edit it however they want, with anything starting with "A computer program is..." Another FYI: Per WP guidance, the contents of any message on an editor's talk page is nonrelevant vis-à-vis an article's substance and talk page. Accordingly, whether anyone deems a notice of 3RR repercussions to be intimidating or counterproductive is similarly impertinent to the article's substance. --Kent Dominic·(talk) 08:25, 14 November 2021 (UTC)
- Thank you for finding a sourced definition: https://www.thefreedictionary.com/computer+program . I'm fine with calling a computer program a sequence of instructions; however, declarative programmers have raised valid issues. By the way, your intimidating message on my talk page was counter productive. Timhowardriley (talk) 07:38, 14 November 2021 (UTC)
- See my comments in the new section below: the distinction between declarative and imperative programs is irrelevant to the definition of a computer program. A computer program describes instructions for computers to execute. Bringing in imperative vs declarative is no more relevant than talking about whether the program is statically or dynamically typed. Caleb Stanford (talk) 15:17, 26 June 2022 (UTC)
Incorporating Computer programming and Programmer into this article
I have reservations about this edit to incorporate sentences from two other articles into this article:
- At least one incorporated sentence runs on and on and doesn't end nicely. For example, "Programming involves tasks such as analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms (usually in a chosen programming language, commonly referred to as coding)."
- The sentences were generated by original research. Both sections combined only have three citations. Plus, two of the citations are from this blog -- not a reliable source.
- The blog doesn't support at least one of the assertions it purports to support. For example, one cited assertion is, "Programming involves tasks such as ... generating algorithms[.]" However, a search in each blog for "algorithm" returned no matches.
- At least one incorporated sentence is better explained in this article. For example, "The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit."
- At least one incorporated sentence is more confusing than informative. For example, "A programmer's most often-used computer language (e.g., Assembly, C, C++, C#, JavaScript, Lisp, Python, Java, etc.) may be prefixed to the aforementioned terms."
- The article already has wikilinks to both incorporated articles.
The computer program article would be better served if an editor would paraphrase from a reliable source the skills of computer programming. Timhowardriley (talk) 22:53, 26 May 2022 (UTC)
- Ideally, the articles Computer programming and Programmer would be improved, instead of duplicating them here. We're here to build an encyclopedia, not just the present article. fgnievinski (talk) 07:23, 28 May 2022 (UTC)
- Very good. However, one GA at a time. Timhowardriley (talk) 09:20, 28 May 2022 (UTC)
- BTW, I tried to improve operating system. Unfortunately, it ended in this train wreck. Timhowardriley (talk) 11:09, 28 May 2022 (UTC)