https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Stack-oriented_programmingStack-oriented programming - Revision history2025-05-29T10:56:59ZRevision history for this page on the wikiMediaWiki 1.45.0-wmf.2https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1265415561&oldid=prevLVDP01: Rewriting lead2024-12-26T20:55:27Z<p>Rewriting lead</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:55, 26 December 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on <del style="font-weight: bold; text-decoration: none;">a</del> <del style="font-weight: bold; text-decoration: none;">stack (</del>or <del style="font-weight: bold; text-decoration: none;">multiple</del> stacks<del style="font-weight: bold; text-decoration: none;">)</del> to manipulate [[data]] and/or pass parameters<del style="font-weight: bold; text-decoration: none;">. Several [[Programming language|programming languages]] fit this description, notably [[Forth (programming language)|Forth]], [[RPL (programming language)|RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose</del>. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]<del style="font-weight: bold; text-decoration: none;">. Any</del> arguments or parameters for a command are <del style="font-weight: bold; text-decoration: none;">stated</del> before that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on <ins style="font-weight: bold; text-decoration: none;">one</ins> or <ins style="font-weight: bold; text-decoration: none;">more</ins> <ins style="font-weight: bold; text-decoration: none;">[[stack machine|</ins>stacks<ins style="font-weight: bold; text-decoration: none;">]]</ins> to manipulate [[data]] and/or pass parameters. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]<ins style="font-weight: bold; text-decoration: none;">:</ins> arguments or parameters for a command are <ins style="font-weight: bold; text-decoration: none;">listed</ins> before that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from<del style="font-weight: bold; text-decoration: none;"> the stack</del> and pushing data to the stack. <del style="font-weight: bold; text-decoration: none;">Stack manipulation operators</del> govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement<del style="font-weight: bold; text-decoration: none;">.</del> <del style="font-weight: bold; text-decoration: none;">This</del> is known as the stack effect diagram. <del style="font-weight: bold; text-decoration: none;">PostScript</del> <del style="font-weight: bold; text-decoration: none;">uses</del> <del style="font-weight: bold; text-decoration: none;">separate</del> stacks for <del style="font-weight: bold; text-decoration: none;">additional</del> purposes, <del style="font-weight: bold; text-decoration: none;">including</del> variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from and pushing data to the stack. <ins style="font-weight: bold; text-decoration: none;">Operators</ins> govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement<ins style="font-weight: bold; text-decoration: none;">;</ins> <ins style="font-weight: bold; text-decoration: none;">this</ins> is known as the stack effect diagram. <ins style="font-weight: bold; text-decoration: none;">Some</ins> <ins style="font-weight: bold; text-decoration: none;">stack-oriented</ins> <ins style="font-weight: bold; text-decoration: none;">languages may use multiple</ins> stacks for <ins style="font-weight: bold; text-decoration: none;">different</ins> purposes<ins style="font-weight: bold; text-decoration: none;">; for example</ins>, <ins style="font-weight: bold; text-decoration: none;">PostScript uses separate stacks for</ins> variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
</tr>
</table>LVDP01https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1262121297&oldid=prevOrozon64: Fixed first letter in a sentence not being capitalized.2024-12-09T18:40:30Z<p>Fixed first letter in a sentence not being capitalized.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:40, 9 December 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>PostScript is an example of a postfix stack-based language. An expression example in this language is {{nowrap|<code>2 3 mul</code>}}('mul' being the command for the multiplication operation). Calculating the expression involves understanding how stack orientation works.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>PostScript is an example of a postfix stack-based language. An expression example in this language is {{nowrap|<code>2 3 mul</code>}}('mul' being the command for the multiplication operation). Calculating the expression involves understanding how stack orientation works.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Stack orientation can be presented as the following conveyor belt analogy. <del style="font-weight: bold; text-decoration: none;">at</del> the end of a conveyor belt (the ''input''), plates marked <code>2</code>, <code>3</code>, and <code>mul</code> are placed in sequence. The plate at the end of the conveyor (<code>2</code>) can be taken, however other plates cannot be accessed until the plate at the end is removed. The plates can only be stored in a stack, and can only be added or removed from atop the stack, not from the middle or bottom. Blank plates (and a marker) can be supplied and plates can be permanently discarded.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Stack orientation can be presented as the following conveyor belt analogy. <ins style="font-weight: bold; text-decoration: none;">At</ins> the end of a conveyor belt (the ''input''), plates marked <code>2</code>, <code>3</code>, and <code>mul</code> are placed in sequence. The plate at the end of the conveyor (<code>2</code>) can be taken, however other plates cannot be accessed until the plate at the end is removed. The plates can only be stored in a stack, and can only be added or removed from atop the stack, not from the middle or bottom. Blank plates (and a marker) can be supplied and plates can be permanently discarded.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[File:Human stack.svg|220px]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[File:Human stack.svg|220px]]</div></td>
</tr>
</table>Orozon64https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1239806702&oldid=prevCtsan10: Added links, shortened long sentences2024-08-11T17:20:56Z<p>Added links, shortened long sentences</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:20, 11 August 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[RPL (programming language)|RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated <del style="font-weight: bold; text-decoration: none;">''</del>before<del style="font-weight: bold; text-decoration: none;">''</del> that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate <ins style="font-weight: bold; text-decoration: none;">[[</ins>data<ins style="font-weight: bold; text-decoration: none;">]]</ins> and/or pass parameters. Several <ins style="font-weight: bold; text-decoration: none;">[[Programming language|</ins>programming languages<ins style="font-weight: bold; text-decoration: none;">]]</ins> fit this description, notably [[Forth (programming language)|Forth]], [[RPL (programming language)|RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated before that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>PostScript is an example of a postfix stack-based language. An expression example in this language is {{nowrap|<code>2 3 mul</code>}}('mul' being the command for the multiplication operation). Calculating the expression involves understanding how stack<del style="font-weight: bold; text-decoration: none;">-</del>orientation works.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>PostScript is an example of a postfix stack-based language. An expression example in this language is {{nowrap|<code>2 3 mul</code>}}('mul' being the command for the multiplication operation). Calculating the expression involves understanding how stack<ins style="font-weight: bold; text-decoration: none;"> </ins>orientation works.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Stack<del style="font-weight: bold; text-decoration: none;">-</del>orientation can be presented as the following conveyor belt analogy. at the end of a conveyor belt (the ''input''), plates marked <code>2</code>, <code>3</code>, and <code>mul</code> are placed in sequence. The plate at the end of the conveyor (<code>2</code>) can be taken, however other plates cannot be accessed until the plate at the end is removed. The plates can only be stored in a stack, and can only be added or removed from atop the stack, not from the middle or bottom. Blank plates (and a marker) can be supplied and plates can be permanently discarded.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Stack<ins style="font-weight: bold; text-decoration: none;"> </ins>orientation can be presented as the following conveyor belt analogy. at the end of a conveyor belt (the ''input''), plates marked <code>2</code>, <code>3</code>, and <code>mul</code> are placed in sequence. The plate at the end of the conveyor (<code>2</code>) can be taken, however other plates cannot be accessed until the plate at the end is removed. The plates can only be stored in a stack, and can only be added or removed from atop the stack, not from the middle or bottom. Blank plates (and a marker) can be supplied and plates can be permanently discarded.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[File:Human stack.svg|220px]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[File:Human stack.svg|220px]]</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 48:</td>
<td colspan="2" class="diff-lineno">Line 48:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack effect diagrams ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack effect diagrams ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>As an aid to understanding the effect of statement, a short comment is used showing the top of the stack before and after the statement. The top of the stack is rightmost if there are multiple items. This notation is commonly used in the Forth language, where comments are enclosed in parentheses.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>As an aid to understanding the effect of<ins style="font-weight: bold; text-decoration: none;"> the</ins> statement, a short comment is used showing the top of the stack before and after the statement. The top of the stack is rightmost if there are multiple items. This notation is commonly used in the Forth language, where comments are enclosed in parentheses.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="forth">( before -- after )</syntaxhighlight></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="forth">( before -- after )</syntaxhighlight></div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 62:</td>
<td colspan="2" class="diff-lineno">Line 62:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">And the</del> <code>fib</code> function below is described:</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">The</ins> <code>fib</code> function below is described:</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="forth">fib ( n -- n' )</syntaxhighlight></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang="forth">fib ( n -- n' )</syntaxhighlight></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>It is equivalent to [[precondition]]s and [[postcondition]]s in [[Hoare logic]]. Both comments may also be referenced as [[assertion (computing)|assertions]], though not necessarily in context of Stack-based languages.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>It is equivalent to [[precondition]]s and [[postcondition]]s in [[Hoare logic]]. Both comments may also be referenced as [[assertion (computing)|assertions]], though not necessarily in<ins style="font-weight: bold; text-decoration: none;"> the</ins> context of Stack-based languages.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== PostScript stacks ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== PostScript stacks ==</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 72:</td>
<td colspan="2" class="diff-lineno">Line 72:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Variables and dictionaries ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Variables and dictionaries ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The evaluation of different expressions has already been analysed. The implementation of variables is important for any programming language, but for stack-oriented languages it is of special concern, as there is only one way to interact with data.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The evaluation of different expressions has already been analysed. The implementation of variables is important for any programming language, but for stack-oriented languages<ins style="font-weight: bold; text-decoration: none;">,</ins> it is of special concern, as there is only one way to interact with data.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The way variables are implemented in stack-oriented languages such as PostScript usually involves a separate, specialized stack which holds ''dictionaries'' of [[key–value pair]]s. To create a variable, a key (the variable name) must be created first, with which a value is then associated. In PostScript, a name data object is prefixed with a <code>/</code>, so <code>/x</code> is a name data object which can be associated with, for example, the number <code>42</code>. The <code>define</code> command is <code>def</code>, so</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The way variables are implemented in stack-oriented languages such as PostScript usually involves a separate, specialized stack which holds ''dictionaries'' of [[key–value<ins style="font-weight: bold; text-decoration: none;"> pair|key-value</ins> pair]]s. To create a variable, a key (the variable name) must be created first, with which a value is then associated. In PostScript, a name data object is prefixed with a <code>/</code>, so <code>/x</code> is a name data object which can be associated with, for example, the number <code>42</code>. The <code>define</code> command is <code>def</code>, so</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code>/x 42 def</code></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><code>/x 42 def</code></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>associates with the name <code>x</code> with the number <code>42</code> in the dictionary atop the stack. A difference exists between <code>/x</code> and <code>x</code> – the former is a data object representing a name, <code>x</code> stands for what is defined under <code>/x</code>.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>associates with the name <code>x</code> with the number <code>42</code> in the dictionary atop the stack. A difference exists between <code>/x</code> and <code>x</code> – the former is a data object representing a name,<ins style="font-weight: bold; text-decoration: none;"> and</ins> <code>x</code> stands for what is defined under <code>/x</code>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Procedures ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Procedures ===</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 91:</td>
<td colspan="2" class="diff-lineno">Line 91:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Since procedures are treated as simple data objects, names with procedures can be defined. When they are retrieved, they are executed directly.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Since procedures are treated as simple data objects, names with procedures can be defined. When they are retrieved, they are executed directly.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Dictionaries provide a means of controlling scoping, as well as storing<del style="font-weight: bold; text-decoration: none;"> of</del> definitions.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Dictionaries provide a means of controlling scoping, as well as storing definitions.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Since data objects are stored in the top-most dictionary, an unexpected ability arises naturally: when looking up a definition from a dictionary, the topmost dictionary is checked, then the next, and so on. If a procedure is defined that has the same name as another already defined in a different dictionary, the local one will be called.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Since data objects are stored in the top-most dictionary, an unexpected ability arises naturally: when looking up a definition from a dictionary, the topmost dictionary is checked, then the next, and so on. If a procedure is defined that has the same name as another already defined in a different dictionary, the local one will be called.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 179:</td>
<td colspan="2" class="diff-lineno">Line 179:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Analysis of the language model ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Analysis of the language model ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The simple model provided in a stack-oriented language allows expressions and programs to be interpreted simply and theoretically evaluated much faster, since no [[syntax analysis]] <del style="font-weight: bold; text-decoration: none;">need</del> be done but [[lexical analysis]]. The way such programs are written facilitates being interpreted by machines, which is why PostScript suits printers well for its use. However, the slightly artificial way of writing PostScript programs can form an initial barrier to understanding stack-oriented languages such as PostScript.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The simple model provided in a stack-oriented language allows expressions and programs to be interpreted simply and theoretically evaluated much faster, since no [[syntax analysis]] <ins style="font-weight: bold; text-decoration: none;">needs to</ins> be done but [[lexical analysis]]. The way such programs are written facilitates being interpreted by machines, which is why PostScript suits printers well for its use. However, the slightly artificial way of writing PostScript programs can form an initial barrier to understanding stack-oriented languages such as PostScript.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>While the ability to shadow by [[method overriding|overriding]] inbuilt and other definitions can make programs hard to debug, and irresponsible use of this feature can cause unpredictable behaviour, it can simplify some functions greatly. For example, in PostScript use, the <code><del style="font-weight: bold; text-decoration: none;">showpage</del></code> operator can be overridden with a custom one that applies a certain style to the page, instead of having to define a custom operator or<del style="font-weight: bold; text-decoration: none;"> to</del> repeat code to generate the style.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>While the ability to shadow by [[method overriding|overriding]] inbuilt and other definitions can make programs hard to debug, and irresponsible use of this feature can cause unpredictable behaviour, it can simplify some functions greatly. For example, in PostScript use, the <code><ins style="font-weight: bold; text-decoration: none;">show page</ins></code> operator can be overridden with a custom one that applies a certain style to the page, instead of having to define a custom operator or repeat code to generate the style.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td>
</tr>
</table>Ctsan10https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1230885638&oldid=prevRagz194 at 07:22, 25 June 20242024-06-25T07:22:47Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:22, 25 June 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 179:</td>
<td colspan="2" class="diff-lineno">Line 179:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Analysis of the language model ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Analysis of the language model ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The simple model provided in a stack-oriented language allows expressions and programs to be interpreted simply and theoretically evaluated much faster, since no [[syntax analysis]] need be done<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">only</del> [[lexical analysis]]. The way such programs are written facilitates being interpreted by machines, which is why PostScript suits printers well for its use. However, the slightly artificial way of writing PostScript programs can form an initial barrier to understanding stack-oriented languages such as PostScript.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The simple model provided in a stack-oriented language allows expressions and programs to be interpreted simply and theoretically evaluated much faster, since no [[syntax analysis]] need be done <ins style="font-weight: bold; text-decoration: none;">but</ins> [[lexical analysis]]. The way such programs are written facilitates being interpreted by machines, which is why PostScript suits printers well for its use. However, the slightly artificial way of writing PostScript programs can form an initial barrier to understanding stack-oriented languages such as PostScript.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>While the ability to shadow by [[method overriding|overriding]] inbuilt and other definitions can make programs hard to debug, and irresponsible use of this feature can cause unpredictable behaviour, it can simplify some functions greatly. For example, in PostScript use, the <code>showpage</code> operator can be overridden with a custom one that applies a certain style to the page, instead of having to define a custom operator or to repeat code to generate the style.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>While the ability to shadow by [[method overriding|overriding]] inbuilt and other definitions can make programs hard to debug, and irresponsible use of this feature can cause unpredictable behaviour, it can simplify some functions greatly. For example, in PostScript use, the <code>showpage</code> operator can be overridden with a custom one that applies a certain style to the page, instead of having to define a custom operator or to repeat code to generate the style.</div></td>
</tr>
</table>Ragz194https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1229537644&oldid=prevLVDP01 at 10:33, 17 June 20242024-06-17T10:33:45Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 10:33, 17 June 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[<del style="font-weight: bold; text-decoration: none;">RPL_</del>(<del style="font-weight: bold; text-decoration: none;">programming_language</del>)|RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[<ins style="font-weight: bold; text-decoration: none;">RPL </ins>(<ins style="font-weight: bold; text-decoration: none;">programming language</ins>)|RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
</tr>
</table>LVDP01https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1229522824&oldid=prevNeedsGlasses: correct link to RPL2024-06-17T08:08:51Z<p>correct link to RPL</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:08, 17 June 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[<ins style="font-weight: bold; text-decoration: none;">RPL_(programming_language)|</ins>RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms manipulate data by popping data from the stack and pushing data to the stack. Stack manipulation operators govern how the stack manipulates [[data]]. To emphasize the effect of a statement, a comment is often used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript uses separate stacks for additional purposes, including variables, dictionaries, procedures, some typical procedures, and control flow statements. Analysis of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
</tr>
</table>NeedsGlasseshttps://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1226751291&oldid=prevPhaesphoria: Copy edit. Fixed some sentences' grammar.2024-06-01T16:04:09Z<p>Copy edit. Fixed some sentences' grammar.</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:04, 1 June 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth (programming language)|Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms <del style="font-weight: bold; text-decoration: none;">consider</del> data<del style="font-weight: bold; text-decoration: none;">,</del> by <del style="font-weight: bold; text-decoration: none;">utilising one piece of</del> data from<del style="font-weight: bold; text-decoration: none;"> atop</del> the stack<del style="font-weight: bold; text-decoration: none;">,</del> and <del style="font-weight: bold; text-decoration: none;">returning</del> data <del style="font-weight: bold; text-decoration: none;">back atop</del> the stack. <del style="font-weight: bold; text-decoration: none;">The need for stack</del> manipulation operators<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">allow</del> <del style="font-weight: bold; text-decoration: none;">for</del> the stack <del style="font-weight: bold; text-decoration: none;">to manipulate</del> [[data]]. To <del style="font-weight: bold; text-decoration: none;">emphasise</del> the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript <del style="font-weight: bold; text-decoration: none;">[[Stack (abstract data type)|stacks]] consider</del> separate stacks for additional purposes<del style="font-weight: bold; text-decoration: none;">. This</del> <del style="font-weight: bold; text-decoration: none;">considers</del> variables, dictionaries, procedures,<del style="font-weight: bold; text-decoration: none;"> anatomy of</del> some typical procedures, control <del style="font-weight: bold; text-decoration: none;">and</del> <del style="font-weight: bold; text-decoration: none;">flow</del>. <del style="font-weight: bold; text-decoration: none;">The analysis</del> of the [[language model]] allows expressions and programs to be interpreted simply<del style="font-weight: bold; text-decoration: none;"> and theoretically</del>.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms <ins style="font-weight: bold; text-decoration: none;">manipulate</ins> data by <ins style="font-weight: bold; text-decoration: none;">popping</ins> data from the stack and <ins style="font-weight: bold; text-decoration: none;">pushing</ins> data <ins style="font-weight: bold; text-decoration: none;">to</ins> the stack. <ins style="font-weight: bold; text-decoration: none;">Stack</ins> manipulation operators <ins style="font-weight: bold; text-decoration: none;">govern</ins> <ins style="font-weight: bold; text-decoration: none;">how</ins> the stack <ins style="font-weight: bold; text-decoration: none;">manipulates</ins> [[data]]. To <ins style="font-weight: bold; text-decoration: none;">emphasize</ins> the effect of a statement, a comment is<ins style="font-weight: bold; text-decoration: none;"> often</ins> used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript <ins style="font-weight: bold; text-decoration: none;">uses</ins> separate stacks for additional purposes<ins style="font-weight: bold; text-decoration: none;">,</ins> <ins style="font-weight: bold; text-decoration: none;">including</ins> variables, dictionaries, procedures, some typical procedures,<ins style="font-weight: bold; text-decoration: none;"> and</ins> control <ins style="font-weight: bold; text-decoration: none;">flow</ins> <ins style="font-weight: bold; text-decoration: none;">statements</ins>. <ins style="font-weight: bold; text-decoration: none;">Analysis</ins> of the [[language model]] allows expressions and programs to be interpreted simply.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Stack-based algorithms ==</div></td>
</tr>
</table>Phaesphoriahttps://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1221494313&oldid=prevLVDP01 at 08:02, 30 April 20242024-04-30T08:02:11Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:02, 30 April 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[<del style="font-weight: bold; text-decoration: none;">Forth_</del>(<del style="font-weight: bold; text-decoration: none;">programming_language</del>)|Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[<ins style="font-weight: bold; text-decoration: none;">Forth </ins>(<ins style="font-weight: bold; text-decoration: none;">programming language</ins>)|Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
</tr>
</table>LVDP01https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1221470936&oldid=prev202.138.72.82: Fixed Forth link2024-04-30T03:35:41Z<p>Fixed Forth link</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:35, 30 April 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is a [[programming paradigm]] that relies on a stack (or multiple stacks) to manipulate data and/or pass parameters. Several programming languages fit this description, notably [[<ins style="font-weight: bold; text-decoration: none;">Forth_(programming_language)|</ins>Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
</tr>
</table>202.138.72.82https://en.wikipedia.org/w/index.php?title=Stack-oriented_programming&diff=1215546442&oldid=prevLVDP01 at 19:48, 25 March 20242024-03-25T19:48:25Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:48, 25 March 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{tone|date=March 2019}}}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming<del style="font-weight: bold; text-decoration: none;"> language</del>''' is <del style="font-weight: bold; text-decoration: none;">one</del> that relies on a stack (or stacks) <del style="font-weight: bold; text-decoration: none;">for</del> <del style="font-weight: bold; text-decoration: none;">manipulating</del> data and/or <del style="font-weight: bold; text-decoration: none;">passing</del> parameters. Several programming languages fit this description, notably [[Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Stack-oriented programming''' is <ins style="font-weight: bold; text-decoration: none;">a [[programming paradigm]]</ins> that relies on a stack (or<ins style="font-weight: bold; text-decoration: none;"> multiple</ins> stacks) <ins style="font-weight: bold; text-decoration: none;">to</ins> <ins style="font-weight: bold; text-decoration: none;">manipulate</ins> data and/or <ins style="font-weight: bold; text-decoration: none;">pass</ins> parameters. Several programming languages fit this description, notably [[Forth]], [[RPL]], and [[PostScript]]. Stack-oriented programming languages operate on one or more [[Stack (data structure)|stacks]], each of which may serve a different purpose. Programming constructs in other programming languages need to be modified for use in a stack-oriented system.<ref>Luerweg, T. (2015). Stack based programming paradigms. Concepts of Programming Languages–CoPL’15, 33.</ref> Most stack-oriented languages operate in ''postfix'' or [[Reverse Polish notation]]. Any arguments or parameters for a command are stated ''before'' that command. For example, postfix notation would be written {{nowrap|<code>2, 3, multiply</code>}} instead of {{nowrap|<code>multiply, 2, 3</code>}} (''prefix'' or [[Polish notation]]), or {{nowrap|<code>2 multiply 3</code>}} ([[infix notation|''infix'' notation]]). The programming languages [[Forth (programming language)|Forth]], [[Factor (programming language)|Factor]], [[RPL (programming language)|RPL]], [[PostScript]], [[BibTeX]] style design language<ref>{{citation|author=Oren Patashnik |title=Designing BibTeX styles |url=http://www.ctan.org/tex-archive/info/biblio/bibtex/contrib/doc/btxhak.pdf}}{{dead link|date=April 2019}}</ref> and many [[assembly language]]s fit this paradigm.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Stack-based algorithms consider data, by utilising one piece of data from atop the stack, and returning data back atop the stack. The need for stack manipulation operators, allow for the stack to manipulate [[data]]. To emphasise the effect of a statement, a comment is used showing the top of the stack before and after the statement. This is known as the stack effect diagram. PostScript [[Stack (abstract data type)|stacks]] consider separate stacks for additional purposes. This considers variables, dictionaries, procedures, anatomy of some typical procedures, control and flow. The analysis of the [[language model]] allows expressions and programs to be interpreted simply and theoretically.</div></td>
</tr>
</table>LVDP01