Skip to main content
6 events
when toggle format what by license comment
Dec 9, 2018 at 3:54 history edited rici CC BY-SA 4.0
Added why we abstract
Dec 8, 2018 at 17:59 comment added rici Because of closure, that demonstrates that the original language was not context-free. That's the only point here. Nothing more.
Dec 8, 2018 at 17:59 comment added rici @Apass.Jack: Nothing prevents $n$ and $m$ from being equal. The point is that the language contains strings with all values of $n$ and $m$. Procedure naming is dealt with by using $a$/$c$ for declaration/use of the first procedure and $b$/$d$ for the second one. In effect, in the simplified grammar the procedures are always named a and b (except when they are used, when they are called c and d, respectively). The point of the simplification is not to parse the original program text in any way. It's simply to demonstrate a non-context-free reduction from the original language.
Dec 8, 2018 at 17:49 comment added John L. This makes sense. What does the word $a^2b^2c^2d^2$ mean in that situation? I mean, it looks like it becomes ambiguous which usage of the procedure corresponds to which declaration. Can we use another language to abstract that kind of agreement when there are two different procedures of $n$ parameters each of which is called once right after its declaration?
Dec 8, 2018 at 17:26 history edited rici CC BY-SA 4.0
Changed the word "function" to "procedure" to avoid one kind of misreading.
Dec 8, 2018 at 14:45 history answered rici CC BY-SA 4.0