Talk:Computer program
| This is the talk page for discussing improvements to the Computer program article. This is not a forum for general discussion of the subject of the article. |
Article policies
|
| Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
| Archives (index): 1, 2, 3, 4Auto-archiving period: 12 months |
| This article is written in American English, which has its own spelling conventions (center, color, defense, realize, traveled) and some terms may be different or absent from other varieties of English. According to the relevant style guide, this should not be changed without broad consensus. |
| Computer program was one of the Engineering and technology good articles, but it has been removed from the list. There are suggestions below for improving the article to meet the good article criteria. Once these issues have been addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake. | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| This It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Thanks
Dear @Timhowardriley I tried working with you, but you have no interest in that. You are close-minded, and disagreeable. Not a team player. You shot down all the concerns and suggestions I made, horked up the comments I made above and now reverted my careful, well considered and IMO valuable edits. You are a hack and a bully. This article is terrible, yet you seem to think it's your pet and cannot live without one precious word of it. Thanks very little. Stevebroshar (talk) 16:16, 30 June 2024 (UTC)
- Please be polite. Timhowardriley (talk) 18:59, 30 June 2024 (UTC)
Is Prolog section too detailed?
This edit has merit. I reverted it because such a big change should first be talked about. The edit trimmed Prolog's second and third examples. These examples were added by Robert Kowalski himself. Given his stature as a pioneer of the language, it's an honor to collaborate with him. Nonetheless, the first example alone gives the reader enough information to decide whether or not to dig deeper. Timhowardriley (talk) 02:26, 1 July 2024 (UTC)
Merge with Software
According to the descriptions of software and a computer program, they seem to be almost exactly the same thing, if there is any distinction at all. Having two article therefore seems superfluous, and I suggest that we merge them into one. —Kri (talk) 15:55, 5 June 2025 (UTC)
- Agree. Software and computer program are the same thing. Software is just a a better sounding word. A source says software also includes documentation and other things. But I don't agree. That's just forcing a distinction. Those other things are categories of their own. Timhowardriley (talk) 17:04, 5 June 2025 (UTC)
- How would you propose handling firmware? RastaKins (talk) 19:09, 5 June 2025 (UTC)
- Please explain. Timhowardriley (talk) 22:56, 5 June 2025 (UTC)
- Oppose - Software, such as a library can be a subset of a computer program. Computer program is a specific software topic. ~Kvng (talk) 14:51, 9 June 2025 (UTC)
- I don't see library as a subset of computer program. Also, the software article doesn't say this. The library article says, "Commonly, a library consists of executable code such as compiled functions and classes, or a library can be a collection of source code." What am I missing?
- Regarding "Computer program is a specific software topic.": Are you saying software is a general topic of which computer program is a special case? Again, the software article doesn't say this.
- What information is there in the software article that differentiates it from computer program? Design documents and specifications? Um. A colleague has never said to me, "Please hand me your documents software." Or "Please hand me your specification software." If I were to receive a request to hand over my software, then I would deliver computer programs.
- Timhowardriley (talk) 19:57, 9 June 2025 (UTC)
- 4. I could "sed s/software/computer program/g" in the software article and the information would stay the same. Likewise, I could "sed s/computer program/software/g" in the computer program article and the information would stay the same. Timhowardriley (talk) 23:19, 9 June 2025 (UTC)
- /1 what you're missing is you can't run a library. You have to link it in as part of a program.
- /2 yes, per my library example. Object file and object file are other examples of software that is not necessarily a computer program. ~Kvng (talk) 15:01, 14 June 2025 (UTC)
- Yes, object files and other libraries are ready to be linked. Whereas they are not source code, they are computer programs. Timhowardriley (talk) 16:20, 14 June 2025 (UTC)
- Followup: In "Comparative Programming Languages, Third Edition", the authors write,
"A computer is a tool that solves problems by means of programs (or software) written in a programming language."
In the Implementation section is written,"Execution of a program written in an imperative language, such as Pascal, Ada, or C++, normally takes place by translating (compiling) the source program into an equivalent machine code program. This machine code is then executed."
In the Separate Compilation section is written,"Packages ... can be compiled separately..."
In "C How to Program, Second Edition", the author writes,"The compiler translates the C program into machine language code (also referred to as object code)."
Later it says,"The fourth phase is called linking. C programs typically contain references to functions defined elsewhere such as in the standard libaries or in the libraries of a group of programmers working on a particular project."
It also says,"A linker links the object code with the code for the missing functions to produce an executable."
Therefore, computer programs (also called software) are written in a programming language that gets translated to another computer program called machine language. Large computer programs may be separated into object code files for convenience. The entire library is then compiled to an executable computer program. Software (also called computer programs) can exist at different levels. At each level, it's still called software -- it's still called computer programs. Timhowardriley (talk) 21:40, 14 June 2025 (UTC)- You're really straining to interpret this source to say what you want it to say. ~Kvng (talk) 15:54, 2 July 2025 (UTC)
mergeSoftware is a type of thing, a bit like metal is a type of substance. A computer program is a bundle of software and other resources needed to perform some task on a computer. So, a computer program contains software, but can also contain other things, like graphics or data for the task. They are not quite the same thing, but it is reasonable to have one WP article that covers both topics as long as the distinction is covered in the article. The merged article will still need some work as both articles include some misconceptions. — GhostInTheMachine talk to me 07:36, 23 June 2025 (UTC)- Regarding "metal is a type of substance": I agree. Dictionary.com says, "[metal is] any of a class of elementary substances ... which are characterized by [additional attributes]". The set of metals is a subset of the set of substances. Therefore, metals have all the properties of substances, plus additional properties that other substances don't have.
- Regarding "a computer program contains software, but can also contain other things, like graphics or data for the task.": I disagree. The set of computer programs is not a subset of the set of software. Computer programs do have all the properties of software -- they are the instructions for the CPU. However, they don't have additional attributes. Therefore, the set of computer programs equals the set of software. Likewise, the set of software equals the set of computer programs.
- On the other hand, graphic files are bytes stored in files. They probably don't have any instructions for the CPU. Likewise, data for the task are bytes stored in files.
- Both graphics files and data for the task may contain embedded, auxiliary instructions for the CPU. Therefore, those isolated blocks are computer programs/software. But not the whole file. I would be confusing my reader if I were to write, "Attached is your graphics file computer program." Instead, I would write, "Attached is your graphics file which loads into the computer program."
- Timhowardriley (talk) 13:22, 23 June 2025 (UTC)
- Oh dear. Having written a fair bit of the stuff, I do know that a computer program may contain non-software components. Casual use may equate the terms, in much the same way that WWW and Internet are often treated as synonyms, but at a technical level they are not the same thing — GhostInTheMachine talk to me 15:18, 23 June 2025 (UTC)
- You didn't refute my claims that graphics files and data for the tasks are not computer programs. Yes, WWW and Internet are synonyms. Regarding
"I do know that a computer program may contain non-software components."
: Please be technical. Timhowardriley (talk) 16:09, 23 June 2025 (UTC) - Additional thought: The Internet is a web of networks scattered throughout the wide world. Timhowardriley (talk) 16:24, 23 June 2025 (UTC)
- You didn't refute my claims that graphics files and data for the tasks are not computer programs. Yes, WWW and Internet are synonyms. Regarding
- Oh dear. Having written a fair bit of the stuff, I do know that a computer program may contain non-software components. Casual use may equate the terms, in much the same way that WWW and Internet are often treated as synonyms, but at a technical level they are not the same thing — GhostInTheMachine talk to me 15:18, 23 June 2025 (UTC)
- In summary, at this point, you have my contention that software is a subset of a computer program because a library is software but not a computer program and we have GhostInTheMachine's contention that a computer program is a superset of software because it can contain images and other ancillary data needed to perform its function. We haven't heard anything more from other participants Kri or RastaKins. ~Kvng (talk) 15:54, 2 July 2025 (UTC)
- In "C How to Program, Second Edition", the author writes,
C programs typically contain references to functions defined elsewhere such as in the standard library or in the libraries of a group of programmers working on a particular project."
It also says,"A linker links the object code with the code for the missing functions to produce an executable."
These two sentences indicate the author believes that libraries and computer programs are the same thing. Please:- Disagree with my indication and explain why.
- Quote a sentence or two from a reliable source that indicate a library of functions isn't a computer program.
- Also, GhostinTheMachine has not refuted my claims that graphics files and data for the task are not computer programs. Also, I challenged GhostinTheMachine to be technical regarding the
I do know that a computer program may contain non-software components
claim. No technical explanation was provided. Timhowardriley (talk) 16:39, 2 July 2025 (UTC) - The software article will probably survive because many editors have contributed to it, and that's okay. However, I'm not going to let a semantic argument insult my intelligence. Timhowardriley (talk) 17:05, 2 July 2025 (UTC)
- The new quotes do not clearly support your position IMO - the word software does not appear in them. We need a consensus of editors to proceed with the merge. That does not mean you need to get my agreement to proceed but we do need to hear from other editors who see it the way you do and that has not happened. ~Kvng (talk) 14:57, 12 July 2025 (UTC)
- In "C How to Program, Second Edition", the author writes,
- oppose — revisited both articles, so reversing my comment. Both articles need some work, so any attempt to merge them will probably prove troublesome and most likely impossible — GhostInTheMachine talk to me 16:05, 24 July 2025 (UTC)
- Oppose – they are definitely not the same thing. First, a library is not a program yet it definitely is software. From that alone, they are different. That's just one example of the fact that software is a broader thing than program. Another example is any large/complicated software system. Consider Microsoft Windows: it's not a program or even a collection of programs. Whatever it is, it's definitely software. The concept of software encompasses the concept of program. But, software's Venn diagram circle is bigger the program's. ... As for the content of the two articles: neither seems great at defining the concepts. There are wildly differing opinions on what the terms mean. When I try to improve them, I usually get smacked, so I've given up trying. Stevebroshar (talk) 14:19, 5 September 2025 (UTC)
AmE vs BrE
The British traditional spelling of "program" is "programme". This is the only exception, computer program. The rest are programme in British English. Program is the British spelling in sense of computer programming. Dotsenter21 (talk) 01:10, 19 June 2025 (UTC)
- Somewhere, I remember reading that Wikipedia doesn't care which English spelling is used, as long as the entire article is consistent. Also, the first major edit of the article should start the consistency. Timhowardriley (talk) 06:15, 19 June 2025 (UTC)
- This is the American English WP. Stevebroshar (talk) 14:20, 5 September 2025 (UTC)
In some contexts the program runs from storage
This edit inserted a "dubious" tag, but a discussion wasn't created. I'm now creating the discussion talk. The claim is this sentence is implausible: If the executable is requested for execution, then the operating system loads it into memory and starts a process.
The claim is this sentence should be rewritten, because some programs run from storage. However, no reliable source is provided that supports the claim that programs may run from storage. Nor have I ever come across this feature. Nonetheless, even if this feature exists somewhere, the Von Neumann architecture still has an instruction cycle that fetches the next instruction from the *memory* address pointed to by the program counter. Timhowardriley (talk) 04:26, 9 October 2025 (UTC)
- The only computers that run programs from storage are drum computers using drum memory. These serial computers were tightly synchronized and usually clocked from the drum. Example: the LGP-30 was a mass-produced drum computer introduced in 1956. It held its execution memory and registers on the drum. The programmer could also use the drum for general storage. LGP-30 was followed by the transistorized RPC 4000 (1960) and the low cost LGP-21 (1963) which curiously used a disk rather than a drum. Machines that can run programs out of storage without loading them into RAM have been obsolete since the invention of core memory. RastaKins (talk) 13:41, 9 October 2025 (UTC)
- I think the tag is meant to be disruptive. Timhowardriley (talk) 16:21, 9 October 2025 (UTC)
- Many simple embedded systems run their program from ROM. There is no loading step in this case and ROM is arguably a form of storage and is certainly not RAM. Are these sort of programs out of scope for this article? ~Kvng (talk) 17:10, 17 October 2025 (UTC)
- ROM is random-access memory; it's just not writable. You could think of it as write-protected RAM. Storage denotes a low level of the memory hierarchy below RAM-type devices. Sure, in ancient times programs ran directly from memory drums or paper tape loops. Since the proliferation of random-access memory, this is no longer done. Storage nowadays denotes secondary non-volatile storage. I know of no system created in the last 50 years that executes programs directly from disk files without first loading them in RAM. Even if there is, intermixing long-obsolete technologies will just confuse the reader. RastaKins (talk) 17:38, 17 October 2025 (UTC)
- Like embedded systems today, the operating system of the TRS-80 (1977) executes from ROM. That's not the context of the sentence being questioned in the article. The context of the sentence in the article is, if the operating system receives a request to execute a program, what's the first step? Is the first step to load the program from storage into memory? Or is that step skipped, and the OS executes the program while the program is still in storage? If the OS executes the program still in storage, then the program counter needs all the storage information, not just a memory address, which is the size of a word. The program counter would have to be wide enough to store the device number, sector number, block number, and offset number. Then each instruction fetch would warrant a context switch. This will never happen. Timhowardriley (talk) 19:47, 17 October 2025 (UTC)
- With virtual memory, things get interesting. To some degree, the program doesn't need be loaded from storage; the code segments in the file just need to be mapped to virtual memory. Code doesn't necessarily get loaded until the processor tries to execute it and gets a page fault. This is all a bit in the weeds. Probably best to just remove the tag and close this conversation. ~Kvng (talk) 20:12, 17 October 2025 (UTC)
- The tag was added by a Wikipedia editor with a history of disruptive edits and abrasive talks. I once had to get an administrator to intervene. The sentence that was tagged states a simple and long-standing fact. New technology has not changed the steps to start a process. Also, the beginning of the instruction cycle is reinforced in several Wikipedia articles. Here is one of them: Process_state#Ready. Timhowardriley (talk) 21:37, 17 October 2025 (UTC)
- With virtual memory, things get interesting. To some degree, the program doesn't need be loaded from storage; the code segments in the file just need to be mapped to virtual memory. Code doesn't necessarily get loaded until the processor tries to execute it and gets a page fault. This is all a bit in the weeds. Probably best to just remove the tag and close this conversation. ~Kvng (talk) 20:12, 17 October 2025 (UTC)
Modern Software Distribution
I would like to suggest adding a small section about modern software distribution and deployment methods.
The current article explains traditional computer programs well, but it gives limited coverage to how software is commonly distributed and used today.
Possible topics could include:
I would like to suggest adding a small section about modern software distribution and deployment methods.
The current article explains traditional computer programs well, but it gives limited coverage to how software is commonly distributed and used today.
Possible topics could include:
- App stores for mobile and desktop software
- Web applications running in browsers
- Cloud-based software and Software as a Service (SaaS)
- Package managers
- Containerization and modern deployment systems
I think this addition could improve the article by reflecting how computer programs are commonly delivered and used in modern computing environments. Er. Satinder J Singh (talk) 06:30, 12 May 2026 (UTC)
- This article is already quite large, focusing down towards the instructions and not up towards the applications. Distribution and deployment probably fits better in Software. Timhowardriley (talk) 14:16, 12 May 2026 (UTC)
- Yes, I agree. I am suggesting it in Software Er. Satinder J Singh (talk) 06:34, 15 May 2026 (UTC)
Undoing valid improvements to the page
User:Timhowardriley, I would appreciate if you would cease undoing my edits to the page.
- "in a simple school application" is extremely vague wording, "in an application modelling a school" is much more specific.
- The C and C++ snippets are full of redundant comments that frankly patronize the user to an extent where any reader sufficiently literate in programming could only call it insulting. Does there really need to be a comment labeling an empty constructor body "nothing else to do"?
- There is no reason why a Makefile needs to be included. WP:NOTTUTORIAL.
- There isn't a single notable codebase that writes classes in
ALL_CAPS, nor any modern codebase which still wraps every parenthesis in spaces. - Initializing fields in the constructor body rather than in the member initialization list is erroneous.
- The C++ section which introduces "modular programming" is better served actually demonstrating modules (which also would shorten the code by eliminating the header/source split), otherwise I have no idea what the point of even introducing the term "modular programming" accomplishes other than just acting as a footnote.
- Calling a C++ constructor an "algorithm" is imprecise to the point where someone doing that could only be called wrong.
- I have no idea why the C++ section was using a class if all the data fields were made public anyway.
- The C examples don't even deallocate the objects.
- No one in an OOP context would ever say "Student is a subset of Person" even if that's technically true from a set-theory point of view.
- I don't know any "students" named "The Student" and I don't know what that's supposed to model. Meanwhile an actual name like "John Doe" actually serves this purpose.
As User:Stevebroshar said in 2024, This article is terrible, yet you seem to think it's your pet and cannot live without one precious word of it.
, and I still concur with these words; the article is terrible, and these sections especially need work. While I personally don't care how much you choose to participate in an article's development, these changes are genuinely necessary and the page is full of accumulated cruft and otherwise subpar content that my edit was specifically addressing. ~2026-41537-93 (talk) 08:09, 30 July 2026 (UTC)
- The code in the article reads and executes just fine. Who are you? Timhowardriley (talk) 10:06, 30 July 2026 (UTC)
...and executes just fine.
- In what metric is "the code compiles" a meaningful indicator?
The code in the article reads... just fine.
- No, it doesn't, for the aforementioned reasons I gave above which you conveniently ignored, and the fact that you avoided them is really eyebrow raising, especially when you've been confronted repeatedly about the state of the article, not least of all by @Stevebroshar (This article has major problems), @Caleb Stanford (see Archive 4, Suggested outline (2022-06-28)), @WikiLinuz (see Archive 4, WP:NOTREPOSITORY). And while you've been editing this page since 2007, by 2021 the edits are mostly your name, and I agree with User:Stevebroshar's words; and your attempt to dismiss them as
a Wikipedia editor with a history of disruptive edits and abrasive talks
is an even more intriguing case of WP:OWNBEHAVIOR. Who are you?
- Somebody with just as much of a right to edit Wikipedia let alone this page and contribute equally as you do, what's it to you? I sure hope you aren't trying to WP:DONTYOUKNOWWHOIAM. ~2026-41537-93 (talk) 23:07, 30 July 2026 (UTC)
- Because of your changes, I no longer understand the code. The code's audience is now smaller. How can I test its accuracy? Also, you're displaying anger. Instead, wikipedia editors are required to display politeness. I'm going to ignore your ad hominem attack. Timhowardriley (talk) 09:54, 31 July 2026 (UTC)
I'm going to ignore your ad hominem attack.
- I don't know what part of my message was an ad hominem attack. I pointed out that you ignored my stated reasons and had a history of dominating the article's development even at the expense of other user's inputs and suggested it constituted WP:OWNBEHAVIOR. I suggested that your question
Who are you?
was WP:DONTYOUKNOWWHOIAM because contextually that is what such a rhetorical question implies, unless you were literally asking for my identity as if me being a temporary account implied I was a logged-out WP:SOCKPUPPET. User:Caleb Stanford, indeed I do not currently possess an account but certainly intend to create one in the not-so-distant future. I no longer understand the code.
- The development of a Wikipedia page has never been tied to any singular user's ability to comprehend its entirety.
How can I test its accuracy?
- It has never been a single user's responsibility to audit the "accuracy" of every snippet of code inserted into a page, but I don't see what my edits introduced that makes it so much harder to be sure it is correct content-wise. In fact, I'm skeptical of the accuracy of the previous versions themselves, as the C and C++ examples didn't even de-allocate the heap-allocated objects, nor did the C++ objects even need to be heap-allocated; furthermore, the C++ examples used
const char*whenstd::stringwas available, while also initializing fields inside the constructor body rather than in the member initialization list. - Finally, as mentioned before, the inclusion of a Makefile really borders the article on a WP:NOTTUTORIAL violation. An article on a computer program really doesn't need steps on how to compile one. ~2026-41537-93 (talk) 22:57, 31 July 2026 (UTC)
- Because of your changes, I no longer understand the code. The code's audience is now smaller. How can I test its accuracy? Also, you're displaying anger. Instead, wikipedia editors are required to display politeness. I'm going to ignore your ad hominem attack. Timhowardriley (talk) 09:54, 31 July 2026 (UTC)
It seems to me that @~2026-41537-93: is making good faith efforts to improve the article, and bring it in line with more modern C syntax. User @~2026-41537-93:, I recommend creating an account! Caleb Stanford (talk) 00:39, 31 July 2026 (UTC)
- Projecting another editor's bad behavior onto me was an attack on my character. Yes, I thought you were a sockpuppet. Wikipedia articles are to communicate to the broadest audience possible. I'm an example of your changes, instead, narrowing the audience pool. Wikipedia articles need to be sourced or source-able. These examples are not sourced. But compiling and running them make them source-able. I compiled the prior examples and witnessed they executed correctly. The operating system will de-allocation heap memory (garbage collection) without the programmer having to bother. There are many ways to construct variables. Passing judgement on someone choosing one instead of another is counter-productive. A makefile is a relevant tool for creating computer programs. It's not a how-to. Timhowardriley (talk) 00:36, 1 August 2026 (UTC)
- Oh! I pressed the wrong "Reply ..." link. Sorry. Timhowardriley (talk) 00:38, 1 August 2026 (UTC)
Wikipedia articles are to communicate to the broadest audience possible. I'm an example of your changes, instead, narrowing the audience pool.
- It isn't the job of the Cauchy's integral theorem page to explain what a contour integral or a holomorphic function is, any more than it is this page's job to explain what a constructor, destructor, field, or a C++ module is (in fact, if the C++ section was going to introduce modular programming to the reader, it's if anything counterproductive to not demonstrate modular programming without using the feature which actually makes the code modular). Nor are any other code snippets this excessively labelled with having to label a class field or a constructor.
I compiled the prior examples and witnessed they executed correctly.
- That would be WP:OR. On the other hand, even if the
examples are not sourced
, WP:CALC (which also applies to "hard sciences") allows such examples provided there is reasonable community consensus that the program is correct. The operating system will de-allocation [sic] heap memory (garbage collection) without the programmer having to bother.
- This seems like a contrived reason to me. The C++ code has no need for explicit destructors or explicit deallocation, whereas the C code does use manually allocated memory. If the reason for omitting deallocation logic from the code snippet is simply because the allocation took place in
main(), then I don't really see what is being gained here; the program did not become "simpler" just because deallocation logic was omitted frommain(), meanwhile it now expects the reader to question why the logic was omitted (especially in the context of C where explicit, manual memory management is so heavily emphasized). (And technically speaking, garbage collection refers to the recovery of memory during a program's execution, not the reclamation of all occupied memory of a program by the operating system at termination.) There are many ways to construct variables. Passing judgement on someone choosing one instead of another is counter-productive.
- Initializing fields through the member initialization list of a constructor is faster because it directly constructs the object with those values, unlike assigning fields in the constructor body which first creates the object and then assigns the fields. As a matter of fact, the member initialization list is necessary for
constfields and references. On the other hand there is nothing gained by initializing the fields inside the constructor body, it does not make the program "simpler" or "easier to comprehend". A makefile is a relevant tool for creating computer programs. It's not a how-to.
- Almost no other Wikipedia page (and none that I can collect at the moment) provide a Makefile to compile the examples, and this isn't limited to just C/C++ examples; I haven't seen a single Java example on Wikipedia that provides a corresponding Maven/Gradle build file or a C# example with a corresponding MSBuild project file. ~2026-41537-93 (talk) 02:45, 1 August 2026 (UTC)
- Regarding
This [memory de-allocation upon process termination] seems like a contrived reason to me.
: It's good that memory free functions appear in C abstract datatypes. However, they are only necessary in programs that allocate large memory blocks or programs that continuously loop. Memory de-allocation upon process termination is not contrived. On page 22 in "The Linux Programming Interface", the author says, "Once a process has completed execution, the kernel ensures that the resources it uses are freed for subsequent reuse by later programs." Timhowardriley (talk) 21:32, 1 August 2026 (UTC)- That's not the point I'm making, I'm saying that deliberately omitting deallocation logic just because it's in the
main()function is just creating an exception to a rule, which by definition just makes the way code is presented on Wikipedia, more complicated. Now, instead of users simply being able to expect each object being deallocated without discrimination, we now expect the user to question why the logic is omitted. However, they are only necessary in programs that allocate large memory blocks or programs that continuously loop.
- Plenty of code snippets on Wikipedia are small, simple programs that do their job of simply being illustrative, educational/informative pieces, but they still include deallocation logic. The deallocation logic doesn't make the snippet more complex or less understandable, but including it makes things consistent and avoids these exceptional cases. ~2026-41537-93 (talk) 00:13, 2 August 2026 (UTC)
- Yes. Thank you for clarifying. Timhowardriley (talk) 00:50, 2 August 2026 (UTC)
- That's not the point I'm making, I'm saying that deliberately omitting deallocation logic just because it's in the
- Regarding
Removed two C++ encapsulation layers
I removed from the C++ examples the encapsulation layers of export module and namespace. The remaining encapsulation layer class is enough for this simple example.
According to Bjarne Stroustrup's 2013 book, the export module encapsulation layer was depreciated by the C++ Standards Committee. He wrote, "In addition, the committee did remove the essentially unused export feature, because it was complex and not shipped by the major vendors." C++_Standard_Library#Standard_modules says the export feature was standardized in 2023. But the article doesn't tout its usefulness.
Indeed, I could not get the examples with the export module encapsulation layer to compile. I googled for help and was advised to use the following compile command: g++ -std=c++23 -fmodules-ts -xc++-system-header Since bleeding-edge flags are required, g++ doesn't support export module encapsulation right out of the box.
Even if g++ compiled the export module encapsulation right out of the box, the two additional layers are too advanced for this elementary article. WP:AUDIENCE would apply. Timhowardriley (talk) 21:38, 14 August 2026 (UTC)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
