Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

He keeps differentiating, flying off on a tangent.


devel / comp.theory / Re: I finally completed my lexical analyzer generator ( axiomatic basis )

SubjectAuthor
* I finally completed my lexical analyzer generator (needed by my halt decider)olcott
+* I finally completed my lexical analyzer generator (needed by myRichard Damon
|`* I finally completed my lexical analyzer generator (needed by myolcott
| `* I finally completed my lexical analyzer generator (needed by my halt decider)Richard Damon
|  `* I finally completed my lexical analyzer generator ( axiomaticolcott
|   `* I finally completed my lexical analyzer generator ( axiomaticRichard Damon
|    `* I finally completed my lexical analyzer generator ( axiomaticolcott
|     `* I finally completed my lexical analyzer generator ( axiomaticRichard Damon
|      `* I finally completed my lexical analyzer generator ( semanticolcott
|       `- I finally completed my lexical analyzer generator ( semanticRichard Damon
+* I finally completed my lexical analyzer generator (needed by myRichard Damon
|`* I finally completed my lexical analyzer generator (needed by myolcott
| `- I finally completed my lexical analyzer generator (needed by myRichard Damon
`* I finally completed my lexical analyzer generator (needed by myolcott
 +- I finally completed my lexical analyzer generator (needed by myRichard Damon
 `* I finally completed my lexical analyzer generator (needed by my halt decider) upBen Bacarisse
  `* I finally completed my lexical analyzer generator (needed by my halt decider) upolcott
   `* I finally completed my lexical analyzer generator (needed by my halt decider) upBen Bacarisse
    `* I finally completed my lexical analyzer generator (needed by myolcott
     `* I finally completed my lexical analyzer generator (needed by my halt decider) upBen Bacarisse
      `* I finally completed my lexical analyzer generator (needed by myolcott
       +- I finally completed my lexical analyzer generator (needed by myRichard Damon
       `* I finally completed my lexical analyzer generator (needed by my halt decider) upBen Bacarisse
        `* I finally completed my lexical analyzer generator (needed by myolcott
         `- I finally completed my lexical analyzer generator (needed by my halt decider) upBen Bacarisse

1
I finally completed my lexical analyzer generator (needed by my halt decider)

<TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22638&group=comp.theory#22638

  copy link   Newsgroups: comp.theory comp.ai.philosophy sci.logic sci.math
Followup: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!buffer1.nntp.dca1.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sat, 23 Oct 2021 20:27:55 -0500
Newsgroups: comp.theory,comp.ai.philosophy,sci.logic,sci.math
X-Mozilla-News-Host: news://news.giganews.com:119
From: NoO...@NoWhere.com (olcott)
Subject: I finally completed my lexical analyzer generator (needed by my halt decider)
Followup-To: comp.theory
Date: Sat, 23 Oct 2021 20:27:50 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Message-ID: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
Lines: 90
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-usDwQMj7pdd6uIcd4Kh7zsIwsZBSnBvIl4nUQSw4FaiTcv9eitgZ/sxizXsRDquajEzyZw+yi/7SAhr!iKN0EXwLavl5fmr9Ues0SFeyXfjsnq/yu7he915KDkB+OzuZ1hsuZBcQcDxe+xKwKBRRwrSqwpY=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 4096
 by: olcott - Sun, 24 Oct 2021 01:27 UTC

In order to make my halt decider a pure function it had to have a way to
look at the inputs to function calls. In order to look at the inputs to
function calls it had to know how many inputs that a function has.

This is DFA analyzes C source code to provide the number of parameters
of each function in the file. The number of parameters per function is
the number of {vt} matches per {fn} match.

The only thing that will change with this file is that the halt decider
will use different halt deciding criteria so that the halt decider
becomes a pure function.

https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation

In computer programming, a pure function is a function that has the
following properties:[1][2]

(1) The function return values are identical for identical arguments (no
variation with local static variables, non-local variables, mutable
reference arguments or input streams).

(2) The function application has no side effects (no mutation of local
static variables, non-local variables, mutable reference arguments or
input/output streams).

https://en.wikipedia.org/wiki/Pure_function

//
// Deterministic Finite Automaton (DFA) recognizer
// of C function headers.

// Character Classes
//
EMPTY [0]
ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
NUMERIC [0123456789]
WS [0x09,0x0A,0x0D,0x20]
LPAREN [(]
RPAREN [)]
ASTERISK [*]
COMMA [,]
COMMENT [0x2f]
NEWLINE [0x0A]
ASCII [0x20-0x7e]
CONTROL [0x00-0x09,0x0b-0x1f,0x7f]

// Recognized Patterns
//
{et} Empty
{ft} Function_Type
{fn} Function_Name
{vt} Variable_Type
{vn} Variable_Name
{fh} Function_Header

// DFA Definition to recognize C function headers

// begin of function type
<00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
<01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
<02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)

// begin of function name
<03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
<04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
<05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)

// begin of variable type
<06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
<07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
<08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)

// begin of variable name
<09> WS (09) ALPHA(10) NUMERIC(00) [*] (00)
<10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
<11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)

// ignores all "//" comments
<12> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](13)
<13> CONTROL(13) ASCII(13) [0x0A] (00)

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<mY2dJ.3216$k35.2640@fx33.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22639&group=comp.theory#22639

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx33.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider)
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 109
Message-ID: <mY2dJ.3216$k35.2640@fx33.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sat, 23 Oct 2021 21:49:06 -0400
X-Received-Bytes: 4981
 by: Richard Damon - Sun, 24 Oct 2021 01:49 UTC

On 10/23/21 9:27 PM, olcott wrote:
> In order to make my halt decider a pure function it had to have a way to
> look at the inputs to function calls. In order to look at the inputs to
> function calls it had to know how many inputs that a function has.
>
> This is DFA analyzes C source code to provide the number of parameters
> of each function in the file. The number of parameters per function is
> the number of {vt} matches per {fn} match.
>
> The only thing that will change with this file is that the halt decider
> will use different halt deciding criteria so that the halt decider
> becomes a pure function.
>
> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>
>
> In computer programming, a pure function is a function that has the
> following properties:[1][2]
>
> (1) The function return values are identical for identical arguments (no
> variation with local static variables, non-local variables, mutable
> reference arguments or input streams).
>
> (2) The function application has no side effects (no mutation of local
> static variables, non-local variables, mutable reference arguments or
> input/output streams).
>
> https://en.wikipedia.org/wiki/Pure_function
>
>
>
> //
> //  Deterministic Finite Automaton (DFA) recognizer
> //  of C function headers.
>
> // Character Classes
> //
>     EMPTY [0]
>     ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>   NUMERIC [0123456789]
>        WS [0x09,0x0A,0x0D,0x20]
>    LPAREN [(]
>    RPAREN [)]
>  ASTERISK [*]
>     COMMA [,]
>   COMMENT [0x2f]
>   NEWLINE [0x0A]
>     ASCII [0x20-0x7e]
>   CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>
>
> // Recognized Patterns
> //
> {et} Empty
> {ft} Function_Type
> {fn} Function_Name
> {vt} Variable_Type
> {vn} Variable_Name
> {fh} Function_Header
>
> // DFA Definition to recognize C function headers
>
> // begin of function type
> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>
> // begin of function name
> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>
> // begin of variable type
> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>
> // begin of variable name
> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>
> // ignores all "//" comments
> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>

Ok,

Just remember that being a 'Pure Funciton' isn't the actual requirement,
the decider needs to be a Mathematical Computation, which means that all
copies of it, when given the same inputs, generates the same outputs.

You STILL have the error that you treat H as a 'pure simulator' when it
is not, it is only a 'pure simulatior until' and as such, the behavior
of the copy of H in H^ DOES have an affect on the behavior of that H^.
Remember, a 'Pure Simulator' (aka a UTM) NEVER stops simulating until
the machine it is simulating ends, even if that takes forever.

Do you think you are immortal as you will be living until you die?

This effect is easy to actually prove by looking at the trace of the run
of H^/P when run as a top level mchine, and seeing that the call to H
inside it does abort its simulation, returns non-halting, and thus H^/P
does Halt.

If H is actually a Computation, as requried, then ALL copies of it must
do exactly that same thing.

Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22640&group=comp.theory#22640

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sat, 23 Oct 2021 21:16:21 -0500
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider)
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
From: NoO...@NoWhere.com (olcott)
Date: Sat, 23 Oct 2021 21:16:20 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <mY2dJ.3216$k35.2640@fx33.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
Lines: 127
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-eP2tDTaURhKYjxEvWrDzcHkBPWUjYMrItfy0x2gQ3VU9ALDRxo07llBG0T3BwuUCda83+VjyywmI3j1!M3X4c1baHFVuewuhHc/g2mCTYXUA9ZUBHWKSiMnNWqRoxtLkfOpJ+QuYXJOUAfmHt69bjpgaNpk=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 5635
 by: olcott - Sun, 24 Oct 2021 02:16 UTC

On 10/23/2021 8:49 PM, Richard Damon wrote:
>
> On 10/23/21 9:27 PM, olcott wrote:
>> In order to make my halt decider a pure function it had to have a way
>> to look at the inputs to function calls. In order to look at the
>> inputs to function calls it had to know how many inputs that a
>> function has.
>>
>> This is DFA analyzes C source code to provide the number of parameters
>> of each function in the file. The number of parameters per function is
>> the number of {vt} matches per {fn} match.
>>
>> The only thing that will change with this file is that the halt
>> decider will use different halt deciding criteria so that the halt
>> decider becomes a pure function.
>>
>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>
>>
>> In computer programming, a pure function is a function that has the
>> following properties:[1][2]
>>
>> (1) The function return values are identical for identical arguments
>> (no variation with local static variables, non-local variables,
>> mutable reference arguments or input streams).
>>
>> (2) The function application has no side effects (no mutation of local
>> static variables, non-local variables, mutable reference arguments or
>> input/output streams).
>>
>> https://en.wikipedia.org/wiki/Pure_function
>>
>>
>>
>> //
>> //  Deterministic Finite Automaton (DFA) recognizer
>> //  of C function headers.
>>
>> // Character Classes
>> //
>>      EMPTY [0]
>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>    NUMERIC [0123456789]
>>         WS [0x09,0x0A,0x0D,0x20]
>>     LPAREN [(]
>>     RPAREN [)]
>>   ASTERISK [*]
>>      COMMA [,]
>>    COMMENT [0x2f]
>>    NEWLINE [0x0A]
>>      ASCII [0x20-0x7e]
>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>
>>
>> // Recognized Patterns
>> //
>> {et} Empty
>> {ft} Function_Type
>> {fn} Function_Name
>> {vt} Variable_Type
>> {vn} Variable_Name
>> {fh} Function_Header
>>
>> // DFA Definition to recognize C function headers
>>
>> // begin of function type
>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>
>> // begin of function name
>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>
>> // begin of variable type
>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>
>> // begin of variable name
>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>
>> // ignores all "//" comments
>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>
>
> Ok,
>
> Just remember that being a 'Pure Funciton' isn't the actual requirement,
> the decider needs to be a Mathematical Computation, which means that all
> copies of it, when given the same inputs, generates the same outputs.
>
> You STILL have the error that you treat H as a 'pure simulator' when it
> is not, it is only a 'pure simulatior until' and as such, the behavior
> of the copy of H in H^ DOES have an affect on the behavior of that H^.
> Remember, a 'Pure Simulator' (aka a UTM) NEVER stops simulating until
> the machine it is simulating ends, even if that takes forever.
>

void Infinite_Loop()
{ HERE: goto HERE;
}

_Infinite_Loop()
[00000ab0](01) 55 push ebp
[00000ab1](02) 8bec mov ebp,esp
[00000ab3](02) ebfe jmp 00000ab3
[00000ab5](01) 5d pop ebp
[00000ab6](01) c3 ret
Size in bytes:(0007) [00000ab6]

Are you saying that the only way that a simulating halt decider can
correctly decide that the above code will never stop running is to wait
until the end of time?

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<4h4dJ.71260$qe4.24572@fx45.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22641&group=comp.theory#22641

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!feeder.usenetexpress.com!tr3.eu1.usenetexpress.com!nntp.speedium.network!feeder01!81.171.65.13.MISMATCH!peer01.ams4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx45.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider)
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com> <mY2dJ.3216$k35.2640@fx33.iad> <0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 157
Message-ID: <4h4dJ.71260$qe4.24572@fx45.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sat, 23 Oct 2021 23:19:27 -0400
X-Received-Bytes: 7099
 by: Richard Damon - Sun, 24 Oct 2021 03:19 UTC

On 10/23/21 10:16 PM, olcott wrote:
> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>
>> On 10/23/21 9:27 PM, olcott wrote:
>>> In order to make my halt decider a pure function it had to have a way
>>> to look at the inputs to function calls. In order to look at the
>>> inputs to function calls it had to know how many inputs that a
>>> function has.
>>>
>>> This is DFA analyzes C source code to provide the number of
>>> parameters of each function in the file. The number of parameters per
>>> function is the number of {vt} matches per {fn} match.
>>>
>>> The only thing that will change with this file is that the halt
>>> decider will use different halt deciding criteria so that the halt
>>> decider becomes a pure function.
>>>
>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>
>>>
>>> In computer programming, a pure function is a function that has the
>>> following properties:[1][2]
>>>
>>> (1) The function return values are identical for identical arguments
>>> (no variation with local static variables, non-local variables,
>>> mutable reference arguments or input streams).
>>>
>>> (2) The function application has no side effects (no mutation of
>>> local static variables, non-local variables, mutable reference
>>> arguments or input/output streams).
>>>
>>> https://en.wikipedia.org/wiki/Pure_function
>>>
>>>
>>>
>>> //
>>> //  Deterministic Finite Automaton (DFA) recognizer
>>> //  of C function headers.
>>>
>>> // Character Classes
>>> //
>>>      EMPTY [0]
>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>    NUMERIC [0123456789]
>>>         WS [0x09,0x0A,0x0D,0x20]
>>>     LPAREN [(]
>>>     RPAREN [)]
>>>   ASTERISK [*]
>>>      COMMA [,]
>>>    COMMENT [0x2f]
>>>    NEWLINE [0x0A]
>>>      ASCII [0x20-0x7e]
>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>
>>>
>>> // Recognized Patterns
>>> //
>>> {et} Empty
>>> {ft} Function_Type
>>> {fn} Function_Name
>>> {vt} Variable_Type
>>> {vn} Variable_Name
>>> {fh} Function_Header
>>>
>>> // DFA Definition to recognize C function headers
>>>
>>> // begin of function type
>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>
>>> // begin of function name
>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>
>>> // begin of variable type
>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>
>>> // begin of variable name
>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>
>>> // ignores all "//" comments
>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>
>>
>> Ok,
>>
>> Just remember that being a 'Pure Funciton' isn't the actual
>> requirement, the decider needs to be a Mathematical Computation, which
>> means that all copies of it, when given the same inputs, generates the
>> same outputs.
>>
>> You STILL have the error that you treat H as a 'pure simulator' when
>> it is not, it is only a 'pure simulatior until' and as such, the
>> behavior of the copy of H in H^ DOES have an affect on the behavior of
>> that H^. Remember, a 'Pure Simulator' (aka a UTM) NEVER stops
>> simulating until the machine it is simulating ends, even if that takes
>> forever.
>>
>
> void Infinite_Loop()
> {
>   HERE: goto HERE;
> }
>
> _Infinite_Loop()
> [00000ab0](01)  55              push ebp
> [00000ab1](02)  8bec            mov ebp,esp
> [00000ab3](02)  ebfe            jmp 00000ab3
> [00000ab5](01)  5d              pop ebp
> [00000ab6](01)  c3              ret
> Size in bytes:(0007) [00000ab6]
>
> Are you saying that the only way that a simulating halt decider can
> correctly decide that the above code will never stop running is to wait
> until the end of time?
>

No. You seem to have a reading comprension problem.

The Simulating Halt Decider is fully allowed to abort the simulation of
the machine it is simulationg.

The only issue is that IF it does so, it can't treat itself as if it was
a UTM/Pure SImulator, and thus the fact that it never saw the comptation
reach a halting state isn't proof of anything.

For the above program, that isn't an issue, it can easily see the loop
without a conditional in it and thus detect that the loop is forever.

The same thing for a 'normal' infinite recursion that doesn't go though
H, that also is easily detected and aborted.

The problem is the recursion through H, which is NOT an 'infinite'
recursion for an H that is able to abort its simulation in this case. If
H can abort, it is NOT a UTM/Pure SImulator, so you can't use the
transform of converting the simulation of the simulator to the trace of
the simulated machine. It just doesn't Hold. You also can't 'ignore' the
presence of the copy of the simulator in the machine it is simulating,
as that copy DOES affect the behavior of the machine (dispite your false
rheteric claiming otherwise).

Your H uses UNSOUND logic to decide that H^ is non-halting, which is why
you come up with a Halting Computation appearing to be non-halting.

You logic conflates the version of your decider that does abort the
simulation with the totally different version that does not, and the
totally different version of H^ that uses that other version.

THAT IS JUST WROHG.

Re: I finally completed my lexical analyzer generator ( axiomatic basis )

<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22642&group=comp.theory#22642

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!1.us.feeder.erje.net!feeder.erje.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sat, 23 Oct 2021 22:29:45 -0500
Subject: Re: I finally completed my lexical analyzer generator ( axiomatic
basis )
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
From: NoO...@NoWhere.com (olcott)
Date: Sat, 23 Oct 2021 22:29:44 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <4h4dJ.71260$qe4.24572@fx45.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
Lines: 153
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-VgIWZ5XpDOX+XnIog1nwvkC9EXegVB8qZuE1FRXlT9qY5zvoQusQh2dKZ7qdfEHmysgyz7cG8JB+46X!zed7DOJZMqGef/SGKNp4wn0ylpKEk+7hQrwwPmLdHmfBflrbuT0t4FfeFZP5jNk7LYdSxkTgYdA=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 7203
 by: olcott - Sun, 24 Oct 2021 03:29 UTC

On 10/23/2021 10:19 PM, Richard Damon wrote:
> On 10/23/21 10:16 PM, olcott wrote:
>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>
>>> On 10/23/21 9:27 PM, olcott wrote:
>>>> In order to make my halt decider a pure function it had to have a
>>>> way to look at the inputs to function calls. In order to look at the
>>>> inputs to function calls it had to know how many inputs that a
>>>> function has.
>>>>
>>>> This is DFA analyzes C source code to provide the number of
>>>> parameters of each function in the file. The number of parameters
>>>> per function is the number of {vt} matches per {fn} match.
>>>>
>>>> The only thing that will change with this file is that the halt
>>>> decider will use different halt deciding criteria so that the halt
>>>> decider becomes a pure function.
>>>>
>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>
>>>>
>>>> In computer programming, a pure function is a function that has the
>>>> following properties:[1][2]
>>>>
>>>> (1) The function return values are identical for identical arguments
>>>> (no variation with local static variables, non-local variables,
>>>> mutable reference arguments or input streams).
>>>>
>>>> (2) The function application has no side effects (no mutation of
>>>> local static variables, non-local variables, mutable reference
>>>> arguments or input/output streams).
>>>>
>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>
>>>>
>>>>
>>>> //
>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>> //  of C function headers.
>>>>
>>>> // Character Classes
>>>> //
>>>>      EMPTY [0]
>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>    NUMERIC [0123456789]
>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>     LPAREN [(]
>>>>     RPAREN [)]
>>>>   ASTERISK [*]
>>>>      COMMA [,]
>>>>    COMMENT [0x2f]
>>>>    NEWLINE [0x0A]
>>>>      ASCII [0x20-0x7e]
>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>
>>>>
>>>> // Recognized Patterns
>>>> //
>>>> {et} Empty
>>>> {ft} Function_Type
>>>> {fn} Function_Name
>>>> {vt} Variable_Type
>>>> {vn} Variable_Name
>>>> {fh} Function_Header
>>>>
>>>> // DFA Definition to recognize C function headers
>>>>
>>>> // begin of function type
>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>
>>>> // begin of function name
>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>
>>>> // begin of variable type
>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>
>>>> // begin of variable name
>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>
>>>> // ignores all "//" comments
>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>
>>>
>>> Ok,
>>>
>>> Just remember that being a 'Pure Funciton' isn't the actual
>>> requirement, the decider needs to be a Mathematical Computation,
>>> which means that all copies of it, when given the same inputs,
>>> generates the same outputs.
>>>
>>> You STILL have the error that you treat H as a 'pure simulator' when
>>> it is not, it is only a 'pure simulatior until' and as such, the
>>> behavior of the copy of H in H^ DOES have an affect on the behavior
>>> of that H^. Remember, a 'Pure Simulator' (aka a UTM) NEVER stops
>>> simulating until the machine it is simulating ends, even if that
>>> takes forever.
>>>
>>
>> void Infinite_Loop()
>> {
>>    HERE: goto HERE;
>> }
>>
>> _Infinite_Loop()
>> [00000ab0](01)  55              push ebp
>> [00000ab1](02)  8bec            mov ebp,esp
>> [00000ab3](02)  ebfe            jmp 00000ab3
>> [00000ab5](01)  5d              pop ebp
>> [00000ab6](01)  c3              ret
>> Size in bytes:(0007) [00000ab6]
>>
>> Are you saying that the only way that a simulating halt decider can
>> correctly decide that the above code will never stop running is to
>> wait until the end of time?
>>
>
> No. You seem to have a reading comprension problem.
>
> The Simulating Halt Decider is fully allowed to abort the simulation of
> the machine it is simulationg.
>
> The only issue is that IF it does so, it can't treat itself as if it was
> a UTM/Pure SImulator, and thus the fact that it never saw the comptation
> reach a halting state isn't proof of anything.

When a simulating halt decider acts as if it is a pure simulator and
watches the behavior of an infinite loop it can correctly abort the
simulation of this input and report that this input never halts. We can
generalize this simplest case of infinite execution to all other cases:

All that I am doing is generalizing this same idea. When-so-ever a
simulating halt decider can correctly axiomatically determine that its
input would never halt if it remained a pure simulator then it can abort
the simulation of this input and report that this input never halts.

When a simulating halt decider correctly axiomatically determines X then
we know that X is necessarily true.

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator ( axiomatic basis )

<FKadJ.9264$Np3.5602@fx06.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22643&group=comp.theory#22643

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder5.feed.usenet.farm!feeder1.feed.usenet.farm!feed.usenet.farm!peer03.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx06.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator ( axiomatic
basis )
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 181
Message-ID: <FKadJ.9264$Np3.5602@fx06.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 24 Oct 2021 06:40:36 -0400
X-Received-Bytes: 8651
 by: Richard Damon - Sun, 24 Oct 2021 10:40 UTC

On 10/23/21 11:29 PM, olcott wrote:
> On 10/23/2021 10:19 PM, Richard Damon wrote:
>> On 10/23/21 10:16 PM, olcott wrote:
>>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>>
>>>> On 10/23/21 9:27 PM, olcott wrote:
>>>>> In order to make my halt decider a pure function it had to have a
>>>>> way to look at the inputs to function calls. In order to look at
>>>>> the inputs to function calls it had to know how many inputs that a
>>>>> function has.
>>>>>
>>>>> This is DFA analyzes C source code to provide the number of
>>>>> parameters of each function in the file. The number of parameters
>>>>> per function is the number of {vt} matches per {fn} match.
>>>>>
>>>>> The only thing that will change with this file is that the halt
>>>>> decider will use different halt deciding criteria so that the halt
>>>>> decider becomes a pure function.
>>>>>
>>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>>
>>>>>
>>>>> In computer programming, a pure function is a function that has the
>>>>> following properties:[1][2]
>>>>>
>>>>> (1) The function return values are identical for identical
>>>>> arguments (no variation with local static variables, non-local
>>>>> variables, mutable reference arguments or input streams).
>>>>>
>>>>> (2) The function application has no side effects (no mutation of
>>>>> local static variables, non-local variables, mutable reference
>>>>> arguments or input/output streams).
>>>>>
>>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>>
>>>>>
>>>>>
>>>>> //
>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>> //  of C function headers.
>>>>>
>>>>> // Character Classes
>>>>> //
>>>>>      EMPTY [0]
>>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>    NUMERIC [0123456789]
>>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>>     LPAREN [(]
>>>>>     RPAREN [)]
>>>>>   ASTERISK [*]
>>>>>      COMMA [,]
>>>>>    COMMENT [0x2f]
>>>>>    NEWLINE [0x0A]
>>>>>      ASCII [0x20-0x7e]
>>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>
>>>>>
>>>>> // Recognized Patterns
>>>>> //
>>>>> {et} Empty
>>>>> {ft} Function_Type
>>>>> {fn} Function_Name
>>>>> {vt} Variable_Type
>>>>> {vn} Variable_Name
>>>>> {fh} Function_Header
>>>>>
>>>>> // DFA Definition to recognize C function headers
>>>>>
>>>>> // begin of function type
>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>
>>>>> // begin of function name
>>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>>
>>>>> // begin of variable type
>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>>
>>>>> // begin of variable name
>>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>>
>>>>> // ignores all "//" comments
>>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>>
>>>>
>>>> Ok,
>>>>
>>>> Just remember that being a 'Pure Funciton' isn't the actual
>>>> requirement, the decider needs to be a Mathematical Computation,
>>>> which means that all copies of it, when given the same inputs,
>>>> generates the same outputs.
>>>>
>>>> You STILL have the error that you treat H as a 'pure simulator' when
>>>> it is not, it is only a 'pure simulatior until' and as such, the
>>>> behavior of the copy of H in H^ DOES have an affect on the behavior
>>>> of that H^. Remember, a 'Pure Simulator' (aka a UTM) NEVER stops
>>>> simulating until the machine it is simulating ends, even if that
>>>> takes forever.
>>>>
>>>
>>> void Infinite_Loop()
>>> {
>>>    HERE: goto HERE;
>>> }
>>>
>>> _Infinite_Loop()
>>> [00000ab0](01)  55              push ebp
>>> [00000ab1](02)  8bec            mov ebp,esp
>>> [00000ab3](02)  ebfe            jmp 00000ab3
>>> [00000ab5](01)  5d              pop ebp
>>> [00000ab6](01)  c3              ret
>>> Size in bytes:(0007) [00000ab6]
>>>
>>> Are you saying that the only way that a simulating halt decider can
>>> correctly decide that the above code will never stop running is to
>>> wait until the end of time?
>>>
>>
>> No. You seem to have a reading comprension problem.
>>
>> The Simulating Halt Decider is fully allowed to abort the simulation
>> of the machine it is simulationg.
>>
>> The only issue is that IF it does so, it can't treat itself as if it
>> was a UTM/Pure SImulator, and thus the fact that it never saw the
>> comptation reach a halting state isn't proof of anything.
>
> When a simulating halt decider acts as if it is a pure simulator and
> watches the behavior of an infinite loop it can correctly abort the
> simulation of this input and report that this input never halts. We can
> generalize this simplest case of infinite execution to all other cases:
>
> All that I am doing is generalizing this same idea. When-so-ever a
> simulating halt decider can correctly axiomatically determine that its
> input would never halt if it remained a pure simulator then it can abort
> the simulation of this input and report that this input never halts.
>
> When a simulating halt decider correctly axiomatically determines X then
> we know that X is necessarily true.
>
>

NO!

You are making an INCORRECT generalization. It is just like claiming
that log(a+b+c) is log(a) + log(b) + log(c) because we have the case
that log(1+2+3) = log(1) + log(2) + log(3).

You have made a claim, PROVE IT. Not just a rhetorical argument done
with vague words, but an honest to god actual analytical proof, using
the exact same accepted definitions of all the words. And then go and
prove that setup does meet the conditions required by the proof to use it.

You say 'axiomatically', but that is just YOUR DISHONEST DOGDE to insert
in a statement that is FALSE.

Now, part of the problem is that you make a number of small errors that
you continue to just ignore and these build up to your false conclusion.

Your statement would be correct if pronoun usage was correct and the
usage refered to just this one COPY being adjusted, and not the shared
copy being changed, which causes the change to change the supposed to be
fixed algorithm employed by the input being simulated. We know that for
THAT case, H is incorrect, as using an ACTUAL 'Pure Simulator' to
process this input (where H^ still uses the original H that does abort)
shows that H^ WILL HALT, and thus the claim "would not halt unless H
aborts the simulation" is incorrect.

These errors have been pointed out to you repeatedly, but you continue
to ignore them. Initially this could have just been passed off as
carelessness, but your continuing shows that it can't just be that, but
must be either stupidity, mental illness, or just that you are a liar.


Click here to read the complete article
Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<FUbdJ.9079$D64.9078@fx41.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22644&group=comp.theory#22644

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!peer02.ams4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx41.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider)
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 92
Message-ID: <FUbdJ.9079$D64.9078@fx41.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 24 Oct 2021 07:59:33 -0400
X-Received-Bytes: 4298
 by: Richard Damon - Sun, 24 Oct 2021 11:59 UTC

On 10/23/21 9:27 PM, olcott wrote:
> In order to make my halt decider a pure function it had to have a way to
> look at the inputs to function calls. In order to look at the inputs to
> function calls it had to know how many inputs that a function has.
>
> This is DFA analyzes C source code to provide the number of parameters
> of each function in the file. The number of parameters per function is
> the number of {vt} matches per {fn} match.
>
> The only thing that will change with this file is that the halt decider
> will use different halt deciding criteria so that the halt decider
> becomes a pure function.
>
> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>
>
> In computer programming, a pure function is a function that has the
> following properties:[1][2]
>
> (1) The function return values are identical for identical arguments (no
> variation with local static variables, non-local variables, mutable
> reference arguments or input streams).
>
> (2) The function application has no side effects (no mutation of local
> static variables, non-local variables, mutable reference arguments or
> input/output streams).
>
> https://en.wikipedia.org/wiki/Pure_function
>
>
>
> //
> //  Deterministic Finite Automaton (DFA) recognizer
> //  of C function headers.
>
> // Character Classes
> //
>     EMPTY [0]
>     ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>   NUMERIC [0123456789]
>        WS [0x09,0x0A,0x0D,0x20]
>    LPAREN [(]
>    RPAREN [)]
>  ASTERISK [*]
>     COMMA [,]
>   COMMENT [0x2f]
>   NEWLINE [0x0A]
>     ASCII [0x20-0x7e]
>   CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>
>
> // Recognized Patterns
> //
> {et} Empty
> {ft} Function_Type
> {fn} Function_Name
> {vt} Variable_Type
> {vn} Variable_Name
> {fh} Function_Header
>
> // DFA Definition to recognize C function headers
>
> // begin of function type
> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>
> // begin of function name
> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>
> // begin of variable type
> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>
> // begin of variable name
> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>
> // ignores all "//" comments
> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>

One thing that I just thought of, this routine that you are using is
going to need the SOURCE code of the machine. Is your decieer now going
to take the full source code of the machine as the input instead of the
compiled object file? Does that mean your decider now includes a full
compiler as part of it?

Re: I finally completed my lexical analyzer generator ( axiomatic basis )

<aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22646&group=comp.theory#22646

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sun, 24 Oct 2021 09:04:42 -0500
Subject: Re: I finally completed my lexical analyzer generator ( axiomatic
basis )
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
<FKadJ.9264$Np3.5602@fx06.iad>
From: NoO...@NoWhere.com (olcott)
Date: Sun, 24 Oct 2021 09:04:40 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <FKadJ.9264$Np3.5602@fx06.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>
Lines: 228
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-NB86kH4BSiwPsvVswmE8njC4r9V9VnSowhHFYNPBGlnfVT4qZbXCyop+YmCsj8KUKGQKIUYYt7UBNJH!sw/84hpKTegk7oWnRWTdudUZ8nAi/uXndWlg+brp1OhaqA5ekBfvwB23MmHzbdrmMii2+F2Ep24=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 10598
 by: olcott - Sun, 24 Oct 2021 14:04 UTC

On 10/24/2021 5:40 AM, Richard Damon wrote:
> On 10/23/21 11:29 PM, olcott wrote:
>> On 10/23/2021 10:19 PM, Richard Damon wrote:
>>> On 10/23/21 10:16 PM, olcott wrote:
>>>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>>>
>>>>> On 10/23/21 9:27 PM, olcott wrote:
>>>>>> In order to make my halt decider a pure function it had to have a
>>>>>> way to look at the inputs to function calls. In order to look at
>>>>>> the inputs to function calls it had to know how many inputs that a
>>>>>> function has.
>>>>>>
>>>>>> This is DFA analyzes C source code to provide the number of
>>>>>> parameters of each function in the file. The number of parameters
>>>>>> per function is the number of {vt} matches per {fn} match.
>>>>>>
>>>>>> The only thing that will change with this file is that the halt
>>>>>> decider will use different halt deciding criteria so that the halt
>>>>>> decider becomes a pure function.
>>>>>>
>>>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>>>
>>>>>>
>>>>>> In computer programming, a pure function is a function that has
>>>>>> the following properties:[1][2]
>>>>>>
>>>>>> (1) The function return values are identical for identical
>>>>>> arguments (no variation with local static variables, non-local
>>>>>> variables, mutable reference arguments or input streams).
>>>>>>
>>>>>> (2) The function application has no side effects (no mutation of
>>>>>> local static variables, non-local variables, mutable reference
>>>>>> arguments or input/output streams).
>>>>>>
>>>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>>>
>>>>>>
>>>>>>
>>>>>> //
>>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>>> //  of C function headers.
>>>>>>
>>>>>> // Character Classes
>>>>>> //
>>>>>>      EMPTY [0]
>>>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>    NUMERIC [0123456789]
>>>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>>>     LPAREN [(]
>>>>>>     RPAREN [)]
>>>>>>   ASTERISK [*]
>>>>>>      COMMA [,]
>>>>>>    COMMENT [0x2f]
>>>>>>    NEWLINE [0x0A]
>>>>>>      ASCII [0x20-0x7e]
>>>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>
>>>>>>
>>>>>> // Recognized Patterns
>>>>>> //
>>>>>> {et} Empty
>>>>>> {ft} Function_Type
>>>>>> {fn} Function_Name
>>>>>> {vt} Variable_Type
>>>>>> {vn} Variable_Name
>>>>>> {fh} Function_Header
>>>>>>
>>>>>> // DFA Definition to recognize C function headers
>>>>>>
>>>>>> // begin of function type
>>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>>
>>>>>> // begin of function name
>>>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>>>
>>>>>> // begin of variable type
>>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>>>
>>>>>> // begin of variable name
>>>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>>>
>>>>>> // ignores all "//" comments
>>>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>>>
>>>>>
>>>>> Ok,
>>>>>
>>>>> Just remember that being a 'Pure Funciton' isn't the actual
>>>>> requirement, the decider needs to be a Mathematical Computation,
>>>>> which means that all copies of it, when given the same inputs,
>>>>> generates the same outputs.
>>>>>
>>>>> You STILL have the error that you treat H as a 'pure simulator'
>>>>> when it is not, it is only a 'pure simulatior until' and as such,
>>>>> the behavior of the copy of H in H^ DOES have an affect on the
>>>>> behavior of that H^. Remember, a 'Pure Simulator' (aka a UTM) NEVER
>>>>> stops simulating until the machine it is simulating ends, even if
>>>>> that takes forever.
>>>>>
>>>>
>>>> void Infinite_Loop()
>>>> {
>>>>    HERE: goto HERE;
>>>> }
>>>>
>>>> _Infinite_Loop()
>>>> [00000ab0](01)  55              push ebp
>>>> [00000ab1](02)  8bec            mov ebp,esp
>>>> [00000ab3](02)  ebfe            jmp 00000ab3
>>>> [00000ab5](01)  5d              pop ebp
>>>> [00000ab6](01)  c3              ret
>>>> Size in bytes:(0007) [00000ab6]
>>>>
>>>> Are you saying that the only way that a simulating halt decider can
>>>> correctly decide that the above code will never stop running is to
>>>> wait until the end of time?
>>>>
>>>
>>> No. You seem to have a reading comprension problem.
>>>
>>> The Simulating Halt Decider is fully allowed to abort the simulation
>>> of the machine it is simulationg.
>>>
>>> The only issue is that IF it does so, it can't treat itself as if it
>>> was a UTM/Pure SImulator, and thus the fact that it never saw the
>>> comptation reach a halting state isn't proof of anything.
>>
>> When a simulating halt decider acts as if it is a pure simulator and
>> watches the behavior of an infinite loop it can correctly abort the
>> simulation of this input and report that this input never halts. We
>> can generalize this simplest case of infinite execution to all other
>> cases:
>>
>> All that I am doing is generalizing this same idea. When-so-ever a
>> simulating halt decider can correctly axiomatically determine that its
>> input would never halt if it remained a pure simulator then it can
>> abort the simulation of this input and report that this input never
>> halts.
>>
>> When a simulating halt decider correctly axiomatically determines X
>> then we know that X is necessarily true.
>>
>>
>
> NO!
>
> You are making an INCORRECT generalization.

When-so-ever X is correct about Y then X is not incorrect about Y is
always true.

> t is just like claiming
> that log(a+b+c) is log(a) + log(b) + log(c) because we have the case
> that log(1+2+3) = log(1) + log(2) + log(3).
>
> You have made a claim, PROVE IT. Not just a rhetorical argument done
> with vague words, but an honest to god actual analytical proof, using
> the exact same accepted definitions of all the words. And then go and
> prove that setup does meet the conditions required by the proof to use it.
>
> You say 'axiomatically', but that is just YOUR DISHONEST DOGDE to insert
> in a statement that is FALSE.
>
> Now, part of the problem is that you make a number of small errors that
> you continue to just ignore and these build up to your false conclusion.
>
> Your statement would be correct if pronoun usage was correct and the
> usage refered to just this one COPY being adjusted, and not the shared
> copy being changed, which causes the change to change the supposed to be
> fixed algorithm employed by the input being simulated. We know that for
> THAT case, H is incorrect, as using an ACTUAL 'Pure Simulator' to
> process this input (where H^ still uses the original H that does abort)
> shows that H^ WILL HALT, and thus the claim "would not halt unless H
> aborts the simulation" is incorrect.
>


Click here to read the complete article
Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<aeydnUtS_8M99ej8nZ2dnUU7-UmdnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22647&group=comp.theory#22647

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sun, 24 Oct 2021 09:07:28 -0500
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider)
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<FUbdJ.9079$D64.9078@fx41.iad>
From: NoO...@NoWhere.com (olcott)
Date: Sun, 24 Oct 2021 09:07:27 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <FUbdJ.9079$D64.9078@fx41.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <aeydnUtS_8M99ej8nZ2dnUU7-UmdnZ2d@giganews.com>
Lines: 103
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-Da5P5+mZspcBSGNplawpMRV6ax/JZrHmHnLbUkZgLVsyBpszki5dNMpWhMujHAOulFpsxStUlhc6InO!cNdKgj1WMfkQmU0h9aY5LxTAiYy77dJ8VnLjHippd+Z7Jf9umpiUK6t8exgllUnExazOEaI5ZPk=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 4978
 by: olcott - Sun, 24 Oct 2021 14:07 UTC

On 10/24/2021 6:59 AM, Richard Damon wrote:
> On 10/23/21 9:27 PM, olcott wrote:
>> In order to make my halt decider a pure function it had to have a way
>> to look at the inputs to function calls. In order to look at the
>> inputs to function calls it had to know how many inputs that a
>> function has.
>>
>> This is DFA analyzes C source code to provide the number of parameters
>> of each function in the file. The number of parameters per function is
>> the number of {vt} matches per {fn} match.
>>
>> The only thing that will change with this file is that the halt
>> decider will use different halt deciding criteria so that the halt
>> decider becomes a pure function.
>>
>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>
>>
>> In computer programming, a pure function is a function that has the
>> following properties:[1][2]
>>
>> (1) The function return values are identical for identical arguments
>> (no variation with local static variables, non-local variables,
>> mutable reference arguments or input streams).
>>
>> (2) The function application has no side effects (no mutation of local
>> static variables, non-local variables, mutable reference arguments or
>> input/output streams).
>>
>> https://en.wikipedia.org/wiki/Pure_function
>>
>>
>>
>> //
>> //  Deterministic Finite Automaton (DFA) recognizer
>> //  of C function headers.
>>
>> // Character Classes
>> //
>>      EMPTY [0]
>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>    NUMERIC [0123456789]
>>         WS [0x09,0x0A,0x0D,0x20]
>>     LPAREN [(]
>>     RPAREN [)]
>>   ASTERISK [*]
>>      COMMA [,]
>>    COMMENT [0x2f]
>>    NEWLINE [0x0A]
>>      ASCII [0x20-0x7e]
>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>
>>
>> // Recognized Patterns
>> //
>> {et} Empty
>> {ft} Function_Type
>> {fn} Function_Name
>> {vt} Variable_Type
>> {vn} Variable_Name
>> {fh} Function_Header
>>
>> // DFA Definition to recognize C function headers
>>
>> // begin of function type
>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>
>> // begin of function name
>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>
>> // begin of variable type
>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>
>> // begin of variable name
>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>
>> // ignores all "//" comments
>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>
>
> One thing that I just thought of, this routine that you are using is
> going to need the SOURCE code of the machine. Is your decieer now going
> to take the full source code of the machine as the input instead of the
> compiled object file? Does that mean your decider now includes a full
> compiler as part of it?

The halt decider is merely provided with a function that tells it the
number of parameters that each function takes.

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator ( axiomatic basis )

<5RgdJ.33089$1n1.21256@fx48.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22656&group=comp.theory#22656

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!feeder1.feed.usenet.farm!feed.usenet.farm!peer03.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx48.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator ( axiomatic
basis )
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
<FKadJ.9264$Np3.5602@fx06.iad>
<aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 269
Message-ID: <5RgdJ.33089$1n1.21256@fx48.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 24 Oct 2021 13:37:04 -0400
X-Received-Bytes: 12270
 by: Richard Damon - Sun, 24 Oct 2021 17:37 UTC

On 10/24/21 10:04 AM, olcott wrote:
> On 10/24/2021 5:40 AM, Richard Damon wrote:
>> On 10/23/21 11:29 PM, olcott wrote:
>>> On 10/23/2021 10:19 PM, Richard Damon wrote:
>>>> On 10/23/21 10:16 PM, olcott wrote:
>>>>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>>>>
>>>>>> On 10/23/21 9:27 PM, olcott wrote:
>>>>>>> In order to make my halt decider a pure function it had to have a
>>>>>>> way to look at the inputs to function calls. In order to look at
>>>>>>> the inputs to function calls it had to know how many inputs that
>>>>>>> a function has.
>>>>>>>
>>>>>>> This is DFA analyzes C source code to provide the number of
>>>>>>> parameters of each function in the file. The number of parameters
>>>>>>> per function is the number of {vt} matches per {fn} match.
>>>>>>>
>>>>>>> The only thing that will change with this file is that the halt
>>>>>>> decider will use different halt deciding criteria so that the
>>>>>>> halt decider becomes a pure function.
>>>>>>>
>>>>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>>>>
>>>>>>>
>>>>>>> In computer programming, a pure function is a function that has
>>>>>>> the following properties:[1][2]
>>>>>>>
>>>>>>> (1) The function return values are identical for identical
>>>>>>> arguments (no variation with local static variables, non-local
>>>>>>> variables, mutable reference arguments or input streams).
>>>>>>>
>>>>>>> (2) The function application has no side effects (no mutation of
>>>>>>> local static variables, non-local variables, mutable reference
>>>>>>> arguments or input/output streams).
>>>>>>>
>>>>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> //
>>>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>>>> //  of C function headers.
>>>>>>>
>>>>>>> // Character Classes
>>>>>>> //
>>>>>>>      EMPTY [0]
>>>>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>    NUMERIC [0123456789]
>>>>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>>>>     LPAREN [(]
>>>>>>>     RPAREN [)]
>>>>>>>   ASTERISK [*]
>>>>>>>      COMMA [,]
>>>>>>>    COMMENT [0x2f]
>>>>>>>    NEWLINE [0x0A]
>>>>>>>      ASCII [0x20-0x7e]
>>>>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>
>>>>>>>
>>>>>>> // Recognized Patterns
>>>>>>> //
>>>>>>> {et} Empty
>>>>>>> {ft} Function_Type
>>>>>>> {fn} Function_Name
>>>>>>> {vt} Variable_Type
>>>>>>> {vn} Variable_Name
>>>>>>> {fh} Function_Header
>>>>>>>
>>>>>>> // DFA Definition to recognize C function headers
>>>>>>>
>>>>>>> // begin of function type
>>>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>>>
>>>>>>> // begin of function name
>>>>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>>>>
>>>>>>> // begin of variable type
>>>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>>>>
>>>>>>> // begin of variable name
>>>>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>>>>
>>>>>>> // ignores all "//" comments
>>>>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>>>>
>>>>>>
>>>>>> Ok,
>>>>>>
>>>>>> Just remember that being a 'Pure Funciton' isn't the actual
>>>>>> requirement, the decider needs to be a Mathematical Computation,
>>>>>> which means that all copies of it, when given the same inputs,
>>>>>> generates the same outputs.
>>>>>>
>>>>>> You STILL have the error that you treat H as a 'pure simulator'
>>>>>> when it is not, it is only a 'pure simulatior until' and as such,
>>>>>> the behavior of the copy of H in H^ DOES have an affect on the
>>>>>> behavior of that H^. Remember, a 'Pure Simulator' (aka a UTM)
>>>>>> NEVER stops simulating until the machine it is simulating ends,
>>>>>> even if that takes forever.
>>>>>>
>>>>>
>>>>> void Infinite_Loop()
>>>>> {
>>>>>    HERE: goto HERE;
>>>>> }
>>>>>
>>>>> _Infinite_Loop()
>>>>> [00000ab0](01)  55              push ebp
>>>>> [00000ab1](02)  8bec            mov ebp,esp
>>>>> [00000ab3](02)  ebfe            jmp 00000ab3
>>>>> [00000ab5](01)  5d              pop ebp
>>>>> [00000ab6](01)  c3              ret
>>>>> Size in bytes:(0007) [00000ab6]
>>>>>
>>>>> Are you saying that the only way that a simulating halt decider can
>>>>> correctly decide that the above code will never stop running is to
>>>>> wait until the end of time?
>>>>>
>>>>
>>>> No. You seem to have a reading comprension problem.
>>>>
>>>> The Simulating Halt Decider is fully allowed to abort the simulation
>>>> of the machine it is simulationg.
>>>>
>>>> The only issue is that IF it does so, it can't treat itself as if it
>>>> was a UTM/Pure SImulator, and thus the fact that it never saw the
>>>> comptation reach a halting state isn't proof of anything.
>>>
>>> When a simulating halt decider acts as if it is a pure simulator and
>>> watches the behavior of an infinite loop it can correctly abort the
>>> simulation of this input and report that this input never halts. We
>>> can generalize this simplest case of infinite execution to all other
>>> cases:
>>>
>>> All that I am doing is generalizing this same idea. When-so-ever a
>>> simulating halt decider can correctly axiomatically determine that
>>> its input would never halt if it remained a pure simulator then it
>>> can abort the simulation of this input and report that this input
>>> never halts.
>>>
>>> When a simulating halt decider correctly axiomatically determines X
>>> then we know that X is necessarily true.
>>>
>>>
>>
>> NO!
>>
>> You are making an INCORRECT generalization.
>
> When-so-ever X is correct about Y then X is not incorrect about Y is
> always true.

And if X is not correct about all Y then X is not correct for all Y.


Click here to read the complete article
Re: I finally completed my lexical analyzer generator (needed by my halt decider)

<7VgdJ.33091$1n1.22675@fx48.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22657&group=comp.theory#22657

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!peer02.ams4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx48.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider)
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<FUbdJ.9079$D64.9078@fx41.iad>
<aeydnUtS_8M99ej8nZ2dnUU7-UmdnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <aeydnUtS_8M99ej8nZ2dnUU7-UmdnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 106
Message-ID: <7VgdJ.33091$1n1.22675@fx48.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 24 Oct 2021 13:41:22 -0400
X-Received-Bytes: 5101
 by: Richard Damon - Sun, 24 Oct 2021 17:41 UTC

On 10/24/21 10:07 AM, olcott wrote:
> On 10/24/2021 6:59 AM, Richard Damon wrote:
>> On 10/23/21 9:27 PM, olcott wrote:
>>> In order to make my halt decider a pure function it had to have a way
>>> to look at the inputs to function calls. In order to look at the
>>> inputs to function calls it had to know how many inputs that a
>>> function has.
>>>
>>> This is DFA analyzes C source code to provide the number of
>>> parameters of each function in the file. The number of parameters per
>>> function is the number of {vt} matches per {fn} match.
>>>
>>> The only thing that will change with this file is that the halt
>>> decider will use different halt deciding criteria so that the halt
>>> decider becomes a pure function.
>>>
>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>
>>>
>>> In computer programming, a pure function is a function that has the
>>> following properties:[1][2]
>>>
>>> (1) The function return values are identical for identical arguments
>>> (no variation with local static variables, non-local variables,
>>> mutable reference arguments or input streams).
>>>
>>> (2) The function application has no side effects (no mutation of
>>> local static variables, non-local variables, mutable reference
>>> arguments or input/output streams).
>>>
>>> https://en.wikipedia.org/wiki/Pure_function
>>>
>>>
>>>
>>> //
>>> //  Deterministic Finite Automaton (DFA) recognizer
>>> //  of C function headers.
>>>
>>> // Character Classes
>>> //
>>>      EMPTY [0]
>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>    NUMERIC [0123456789]
>>>         WS [0x09,0x0A,0x0D,0x20]
>>>     LPAREN [(]
>>>     RPAREN [)]
>>>   ASTERISK [*]
>>>      COMMA [,]
>>>    COMMENT [0x2f]
>>>    NEWLINE [0x0A]
>>>      ASCII [0x20-0x7e]
>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>
>>>
>>> // Recognized Patterns
>>> //
>>> {et} Empty
>>> {ft} Function_Type
>>> {fn} Function_Name
>>> {vt} Variable_Type
>>> {vn} Variable_Name
>>> {fh} Function_Header
>>>
>>> // DFA Definition to recognize C function headers
>>>
>>> // begin of function type
>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>
>>> // begin of function name
>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>
>>> // begin of variable type
>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>
>>> // begin of variable name
>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>
>>> // ignores all "//" comments
>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>
>>
>> One thing that I just thought of, this routine that you are using is
>> going to need the SOURCE code of the machine. Is your decieer now
>> going to take the full source code of the machine as the input instead
>> of the compiled object file? Does that mean your decider now includes
>> a full compiler as part of it?
>
> The halt decider is merely provided with a function that tells it the
> number of parameters that each function takes.
>

And if the input to the decider is an executable file, where does it get
this source code to send to the function?

Or, does your halt decider now have some other input besides the
encoding of the machine and its input to decide on, and thus isn't
anything like the halt decider of the Halting Problem?

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22658&group=comp.theory#22658

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sun, 24 Oct 2021 13:37:39 -0500
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
From: NoO...@NoWhere.com (olcott)
Date: Sun, 24 Oct 2021 13:37:38 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Message-ID: <GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
Lines: 105
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-LKRlQg0o431xe1m2c+QagEmXPUPHJSMBhveJTEWnfxA0lH9R8iyOvRCbMLWm16+3rN9MFDUXGjSK5J7!lQUv/PR6o016uqi2e12stItJMTUCkSVYtfDLwKO6wpYhUnLTt6KLRQJqCcdq3cD/dKbMl+LS0bg=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 4719
 by: olcott - Sun, 24 Oct 2021 18:37 UTC

On 10/23/2021 8:27 PM, olcott wrote:
> In order to make my halt decider a pure function it had to have a way to
> look at the inputs to function calls. In order to look at the inputs to
> function calls it had to know how many inputs that a function has.
>
> This is DFA analyzes C source code to provide the number of parameters
> of each function in the file. The number of parameters per function is
> the number of {vt} matches per {fn} match.
>
> The only thing that will change with this file is that the halt decider
> will use different halt deciding criteria so that the halt decider
> becomes a pure function.
>
> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>
>
> In computer programming, a pure function is a function that has the
> following properties:[1][2]
>
> (1) The function return values are identical for identical arguments (no
> variation with local static variables, non-local variables, mutable
> reference arguments or input streams).
>
> (2) The function application has no side effects (no mutation of local
> static variables, non-local variables, mutable reference arguments or
> input/output streams).
>
> https://en.wikipedia.org/wiki/Pure_function
>
>
Enhancements: (Assumes that the C source code compiles)
(a) Ignores /* */ comments
(b) Ignores #define lines
(c) Correctly handles trailing space in: int Function_Name(void )

//
// Deterministic Finite Automaton (DFA) recognizer
// of C function headers.

// Character Classes
//
EMPTY [0]
ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
NUMERIC [0123456789]
WS [0x09,0x0A,0x0D,0x20]
LPAREN [(]
RPAREN [)]
POUND [#]
ASTERISK [*] // 0x2a
COMMA [,]

SLASH [0x2f] // "/"
NEWLINE [0x0A]
ASCII [0x20-0x7e]
ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
CONTROL [0x00-0x09,0x0b-0x1f,0x7f]

// Recognized Patterns
//
{et} Empty
{ft} Function_Type
{fn} Function_Name
{vt} Variable_Type
{vn} Variable_Name
{fh} Function_Header

// DFA Definition to recognize C function headers

// begin of function type
<00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
<01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
<02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)

// begin of function name
<03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
<04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
<05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)

// begin of variable type
<06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
<07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
<08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)

// begin of variable name
<09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
<10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
<11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)

// ignores all "//" comments
<12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
<13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)

// look for comment terminator "*/"
<14> ASCII_MINUS_ASTERISK(14) [*](15)
<15> ASCII_MINUS_SLASH(14) [/](00)

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<bTidJ.9898$D64.1912@fx41.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22659&group=comp.theory#22659

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx41.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 111
Message-ID: <bTidJ.9898$D64.1912@fx41.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 24 Oct 2021 15:55:51 -0400
X-Received-Bytes: 4907
X-Original-Bytes: 4774
 by: Richard Damon - Sun, 24 Oct 2021 19:55 UTC

On 10/24/21 2:37 PM, olcott wrote:
> On 10/23/2021 8:27 PM, olcott wrote:
>> In order to make my halt decider a pure function it had to have a way
>> to look at the inputs to function calls. In order to look at the
>> inputs to function calls it had to know how many inputs that a
>> function has.
>>
>> This is DFA analyzes C source code to provide the number of parameters
>> of each function in the file. The number of parameters per function is
>> the number of {vt} matches per {fn} match.
>>
>> The only thing that will change with this file is that the halt
>> decider will use different halt deciding criteria so that the halt
>> decider becomes a pure function.
>>
>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>
>>
>> In computer programming, a pure function is a function that has the
>> following properties:[1][2]
>>
>> (1) The function return values are identical for identical arguments
>> (no variation with local static variables, non-local variables,
>> mutable reference arguments or input streams).
>>
>> (2) The function application has no side effects (no mutation of local
>> static variables, non-local variables, mutable reference arguments or
>> input/output streams).
>>
>> https://en.wikipedia.org/wiki/Pure_function
>>
>>
> Enhancements: (Assumes that the C source code compiles)
> (a) Ignores /* */ comments
> (b) Ignores #define lines
> (c) Correctly handles trailing space in: int Function_Name(void   )
>
> //
> //  Deterministic Finite Automaton (DFA) recognizer
> //  of C function headers.
>
> // Character Classes
> //
>     EMPTY [0]
>     ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>   NUMERIC [0123456789]
>        WS [0x09,0x0A,0x0D,0x20]
>    LPAREN [(]
>    RPAREN [)]
>     POUND [#]
>  ASTERISK [*]     // 0x2a
>     COMMA [,]
>
>     SLASH [0x2f]  // "/"
>   NEWLINE [0x0A]
>     ASCII [0x20-0x7e]
>      ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>     ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>        ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>   CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>
> // Recognized Patterns
> //
> {et} Empty
> {ft} Function_Type
> {fn} Function_Name
> {vt} Variable_Type
> {vn} Variable_Name
> {fh} Function_Header
>
> // DFA Definition to recognize C function headers
>
> // begin of function type
> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>
> // begin of function name
> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>
> // begin of variable type
> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>
> // begin of variable name
> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00) [)]{fh}(00)
> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>
> // ignores all "//" comments
> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](14) [/](13)
> <13> ASCII_MINUS_NEWLINE(13)  [0x0A] (00)
>
> // look for comment terminator "*/"
> <14> ASCII_MINUS_ASTERISK(14) [*](15)
> <15>    ASCII_MINUS_SLASH(14) [/](00)
>
>
>

And again my question, what good is this if the halt decider is getting
the compiled version of the code as its input?

If H doesn't have the source code, it can't give what it doesn't have to
the DFA to get the data it wants.

Or, does the Halt Decider now get the source code and is compiling it
before running it?

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<87bl3d3o80.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22663&group=comp.theory#22663

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Date: Mon, 25 Oct 2021 02:08:47 +0100
Organization: A noiseless patient Spider
Lines: 91
Message-ID: <87bl3d3o80.fsf@bsb.me.uk>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="09b849f8281868abc1c72fad6e5d61bb";
logging-data="31190"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18SlVKSDsa0J/CacmEINudYzbANJv2nqpk="
Cancel-Lock: sha1:jge9ksZCSLOZbiowqFyApJVhB00=
sha1:i2bAR+E8S6oy/A17SnBjEQjXRtA=
X-BSB-Auth: 1.09f2c553c0c0b3277a8c.20211025020847BST.87bl3d3o80.fsf@bsb.me.uk
 by: Ben Bacarisse - Mon, 25 Oct 2021 01:08 UTC

olcott <NoOne@NoWhere.com> writes:

> Enhancements: (Assumes that the C source code compiles)
> (a) Ignores /* */ comments
> (b) Ignores #define lines
> (c) Correctly handles trailing space in: int Function_Name(void )
>
> //
> // Deterministic Finite Automaton (DFA) recognizer
> // of C function headers.
>
> // Character Classes
> //
> EMPTY [0]
> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
> NUMERIC [0123456789]
> WS [0x09,0x0A,0x0D,0x20]
> LPAREN [(]
> RPAREN [)]
> POUND [#]
> ASTERISK [*] // 0x2a
> COMMA [,]
> SLASH [0x2f] // "/"
> NEWLINE [0x0A]

Why don't you use these last seven?

> ASCII [0x20-0x7e]
> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>
> // Recognized Patterns
> //
> {et} Empty
> {ft} Function_Type
> {fn} Function_Name
> {vt} Variable_Type
> {vn} Variable_Name
> {fh} Function_Header
>
> // DFA Definition to recognize C function headers

No DFA can do that in general. You mean "recognise a very restricted
subset of C function headers".

> // begin of function type
> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)

What does that [*] mean? Judging by the other uses of []s, you seem to
be accepting *s and digits at the start of a C function header even
though they won't be taken to be one of your named matches. Why single
out *s and digits?

> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>
> // begin of function name
> <03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
> <05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)
>
> // begin of variable type
> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)

And all these uses of [*] are very odd. It seems that after seeing this
string:

*1*x x(*x x()

your DFA returns to state 0 having seen an {fh}. Is that right? Maybe
I've misunderstood the notation.

> // begin of variable name
> <09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
> <11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)
>
> // ignores all "//" comments
> <12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)
>
> // look for comment terminator "*/"
> <14> ASCII_MINUS_ASTERISK(14) [*](15)
> <15> ASCII_MINUS_SLASH(14) [/](00)

--
Ben.

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22664&group=comp.theory#22664

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!news-out.netnews.com!news.alt.net!fdc2.netnews.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Sun, 24 Oct 2021 20:45:55 -0500
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com> <GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com> <87bl3d3o80.fsf@bsb.me.uk>
From: NoO...@NoWhere.com (olcott)
Date: Sun, 24 Oct 2021 20:45:53 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <87bl3d3o80.fsf@bsb.me.uk>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Message-ID: <xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>
Lines: 123
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-k0wToSt0bmNIymXvaF+frf0mrw6YiYMEuYfl7LrbWVxVoowUKcfrKXBPLg5BdTXcgaN3EGvy2vly/tC!QdXWM97KnDCrtQNL45Sss4PUFxUyYzWa7dkNvQxFQxFS350AKrNAfNDrjgaJ9XIHCkMTj7JZu5Y=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 4987
 by: olcott - Mon, 25 Oct 2021 01:45 UTC

On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
> olcott <NoOne@NoWhere.com> writes:
>
>> Enhancements: (Assumes that the C source code compiles)
>> (a) Ignores /* */ comments
>> (b) Ignores #define lines
>> (c) Correctly handles trailing space in: int Function_Name(void )
>>
>> //
>> // Deterministic Finite Automaton (DFA) recognizer
>> // of C function headers.
>>
>> // Character Classes
>> //
>> EMPTY [0]
>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>> NUMERIC [0123456789]
>> WS [0x09,0x0A,0x0D,0x20]
>> LPAREN [(]
>> RPAREN [)]
>> POUND [#]
>> ASTERISK [*] // 0x2a
>> COMMA [,]
>> SLASH [0x2f] // "/"
>> NEWLINE [0x0A]
>
> Why don't you use these last seven?
>

I do use them.
I can refer to either the name or the definition of the character class.
ASCII and CONTROL may be used in the future.

>> ASCII [0x20-0x7e]
>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>
>> // Recognized Patterns
>> //
>> {et} Empty
>> {ft} Function_Type
>> {fn} Function_Name
>> {vt} Variable_Type
>> {vn} Variable_Name
>> {fh} Function_Header
>>
>> // DFA Definition to recognize C function headers
>
> No DFA can do that in general. You mean "recognise a very restricted
> subset of C function headers".
>

It recognizes everything that I will ever write.

>> // begin of function type
>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>
> What does that [*] mean? Judging by the other uses of []s, you seem to
> be accepting *s and digits at the start of a C function header even
> though they won't be taken to be one of your named matches. Why single
> out *s and digits?
>

int* M(int* N);

>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>
>> // begin of function name
>> <03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>> <05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)
>>
>> // begin of variable type
>> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>
> And all these uses of [*] are very odd. It seems that after seeing this
> string:
>
> *1*x x(*x x()
>

The DFA asumes that its input compiles as C, thus will never see that
string.

> your DFA returns to state 0 having seen an {fh}. Is that right? Maybe
> I've misunderstood the notation.
>

Yes. In the code that executes the DFA there are semantic actions.
This is the most important semantic action:

bool RecognizedFunctionHeader(u8 OneByte, int State)
{ return (OneByte == ')' &&
(State == 6 || State == 7 ||
State == 9 || State == 10 || State == 11));
}

>> // begin of variable name
>> <09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>> <11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)
>>
>> // ignores all "//" comments
>> <12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
>> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)
>>
>> // look for comment terminator "*/"
>> <14> ASCII_MINUS_ASTERISK(14) [*](15)
>> <15> ASCII_MINUS_SLASH(14) [/](00)
>

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator ( semantic tautology )

<0YednToPkq-aWuv8nZ2dnUU78LvNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22668&group=comp.theory#22668

  copy link   Newsgroups: comp.theory comp.ai.philosophy sci.logic
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!border2.nntp.ams1.giganews.com!nntp.giganews.com!buffer2.nntp.ams1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 25 Oct 2021 10:02:31 -0500
Subject: Re: I finally completed my lexical analyzer generator ( semantic
tautology )
Newsgroups: comp.theory,comp.ai.philosophy,sci.logic
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
<FKadJ.9264$Np3.5602@fx06.iad>
<aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>
<5RgdJ.33089$1n1.21256@fx48.iad>
From: NoO...@NoWhere.com (olcott)
Date: Mon, 25 Oct 2021 10:02:28 -0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <5RgdJ.33089$1n1.21256@fx48.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <0YednToPkq-aWuv8nZ2dnUU78LvNnZ2d@giganews.com>
Lines: 283
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-jYfv3umAKmcVQcoeUZS7jtIBpOSoknLBRJbPHpngSKWEY7G3eH8bSBlRYJEnRKasGGzaYZ0gi7dpKGH!nSC1/0pRVA7cXCxTFFgtjoR0qFd/9zoxF+/5h7IARubq98O0BhrplClhsvnJEM08iNFvHiGyCKs=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 13232
 by: olcott - Mon, 25 Oct 2021 15:02 UTC

On 10/24/2021 12:37 PM, Richard Damon wrote:
> On 10/24/21 10:04 AM, olcott wrote:
>> On 10/24/2021 5:40 AM, Richard Damon wrote:
>>> On 10/23/21 11:29 PM, olcott wrote:
>>>> On 10/23/2021 10:19 PM, Richard Damon wrote:
>>>>> On 10/23/21 10:16 PM, olcott wrote:
>>>>>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>>>>>
>>>>>>> On 10/23/21 9:27 PM, olcott wrote:
>>>>>>>> In order to make my halt decider a pure function it had to have
>>>>>>>> a way to look at the inputs to function calls. In order to look
>>>>>>>> at the inputs to function calls it had to know how many inputs
>>>>>>>> that a function has.
>>>>>>>>
>>>>>>>> This is DFA analyzes C source code to provide the number of
>>>>>>>> parameters of each function in the file. The number of
>>>>>>>> parameters per function is the number of {vt} matches per {fn}
>>>>>>>> match.
>>>>>>>>
>>>>>>>> The only thing that will change with this file is that the halt
>>>>>>>> decider will use different halt deciding criteria so that the
>>>>>>>> halt decider becomes a pure function.
>>>>>>>>
>>>>>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>>>>>
>>>>>>>>
>>>>>>>> In computer programming, a pure function is a function that has
>>>>>>>> the following properties:[1][2]
>>>>>>>>
>>>>>>>> (1) The function return values are identical for identical
>>>>>>>> arguments (no variation with local static variables, non-local
>>>>>>>> variables, mutable reference arguments or input streams).
>>>>>>>>
>>>>>>>> (2) The function application has no side effects (no mutation of
>>>>>>>> local static variables, non-local variables, mutable reference
>>>>>>>> arguments or input/output streams).
>>>>>>>>
>>>>>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> //
>>>>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>>>>> //  of C function headers.
>>>>>>>>
>>>>>>>> // Character Classes
>>>>>>>> //
>>>>>>>>      EMPTY [0]
>>>>>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>>    NUMERIC [0123456789]
>>>>>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>>>>>     LPAREN [(]
>>>>>>>>     RPAREN [)]
>>>>>>>>   ASTERISK [*]
>>>>>>>>      COMMA [,]
>>>>>>>>    COMMENT [0x2f]
>>>>>>>>    NEWLINE [0x0A]
>>>>>>>>      ASCII [0x20-0x7e]
>>>>>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>>
>>>>>>>>
>>>>>>>> // Recognized Patterns
>>>>>>>> //
>>>>>>>> {et} Empty
>>>>>>>> {ft} Function_Type
>>>>>>>> {fn} Function_Name
>>>>>>>> {vt} Variable_Type
>>>>>>>> {vn} Variable_Name
>>>>>>>> {fh} Function_Header
>>>>>>>>
>>>>>>>> // DFA Definition to recognize C function headers
>>>>>>>>
>>>>>>>> // begin of function type
>>>>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>>>>
>>>>>>>> // begin of function name
>>>>>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>>>>>
>>>>>>>> // begin of variable type
>>>>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>>>>>
>>>>>>>> // begin of variable name
>>>>>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>>>>>
>>>>>>>> // ignores all "//" comments
>>>>>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>>>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>>>>>
>>>>>>>
>>>>>>> Ok,
>>>>>>>
>>>>>>> Just remember that being a 'Pure Funciton' isn't the actual
>>>>>>> requirement, the decider needs to be a Mathematical Computation,
>>>>>>> which means that all copies of it, when given the same inputs,
>>>>>>> generates the same outputs.
>>>>>>>
>>>>>>> You STILL have the error that you treat H as a 'pure simulator'
>>>>>>> when it is not, it is only a 'pure simulatior until' and as such,
>>>>>>> the behavior of the copy of H in H^ DOES have an affect on the
>>>>>>> behavior of that H^. Remember, a 'Pure Simulator' (aka a UTM)
>>>>>>> NEVER stops simulating until the machine it is simulating ends,
>>>>>>> even if that takes forever.
>>>>>>>
>>>>>>
>>>>>> void Infinite_Loop()
>>>>>> {
>>>>>>    HERE: goto HERE;
>>>>>> }
>>>>>>
>>>>>> _Infinite_Loop()
>>>>>> [00000ab0](01)  55              push ebp
>>>>>> [00000ab1](02)  8bec            mov ebp,esp
>>>>>> [00000ab3](02)  ebfe            jmp 00000ab3
>>>>>> [00000ab5](01)  5d              pop ebp
>>>>>> [00000ab6](01)  c3              ret
>>>>>> Size in bytes:(0007) [00000ab6]
>>>>>>
>>>>>> Are you saying that the only way that a simulating halt decider
>>>>>> can correctly decide that the above code will never stop running
>>>>>> is to wait until the end of time?
>>>>>>
>>>>>
>>>>> No. You seem to have a reading comprension problem.
>>>>>
>>>>> The Simulating Halt Decider is fully allowed to abort the
>>>>> simulation of the machine it is simulationg.
>>>>>
>>>>> The only issue is that IF it does so, it can't treat itself as if
>>>>> it was a UTM/Pure SImulator, and thus the fact that it never saw
>>>>> the comptation reach a halting state isn't proof of anything.
>>>>
>>>> When a simulating halt decider acts as if it is a pure simulator and
>>>> watches the behavior of an infinite loop it can correctly abort the
>>>> simulation of this input and report that this input never halts. We
>>>> can generalize this simplest case of infinite execution to all other
>>>> cases:
>>>>
>>>> All that I am doing is generalizing this same idea. When-so-ever a
>>>> simulating halt decider can correctly axiomatically determine that
>>>> its input would never halt if it remained a pure simulator then it
>>>> can abort the simulation of this input and report that this input
>>>> never halts.
>>>>
>>>> When a simulating halt decider correctly axiomatically determines X
>>>> then we know that X is necessarily true.
>>>>
>>>>
>>>
>>> NO!
>>>
>>> You are making an INCORRECT generalization.
>>
>> When-so-ever X is correct about Y then X is not incorrect about Y is
>> always true.
>
> And if X is not correct about all Y then X is not correct for all Y.


Click here to read the complete article
Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<87wnm01y9s.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22681&group=comp.theory#22681

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Date: Tue, 26 Oct 2021 00:26:55 +0100
Organization: A noiseless patient Spider
Lines: 116
Message-ID: <87wnm01y9s.fsf@bsb.me.uk>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
<87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="f434864a40ea3744be18b55cdd01f805";
logging-data="10564"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19RcWYAKqdujd+rel7ACcIHpqxDUSx1H+0="
Cancel-Lock: sha1:s14VJ3FK8HheamPtmP3zGQoQLDk=
sha1:YCHvz+bNcSOrjB/3ei4bhxe9bQw=
X-BSB-Auth: 1.6551a8092d264bda9db2.20211026002655BST.87wnm01y9s.fsf@bsb.me.uk
 by: Ben Bacarisse - Mon, 25 Oct 2021 23:26 UTC

olcott <NoOne@NoWhere.com> writes:

> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>> olcott <NoOne@NoWhere.com> writes:
>>
>>> Enhancements: (Assumes that the C source code compiles)
>>> (a) Ignores /* */ comments
>>> (b) Ignores #define lines
>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>
>>> //
>>> // Deterministic Finite Automaton (DFA) recognizer
>>> // of C function headers.
>>>
>>> // Character Classes
>>> //
>>> EMPTY [0]
>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>> NUMERIC [0123456789]
>>> WS [0x09,0x0A,0x0D,0x20]
>>> LPAREN [(]
>>> RPAREN [)]
>>> POUND [#]
>>> ASTERISK [*] // 0x2a
>>> COMMA [,]
>>> SLASH [0x2f] // "/"
>>> NEWLINE [0x0A]
>>
>> Why don't you use these last seven?
>
> I do use them.

I meant why not use them in the code you posted.

> I can refer to either the name or the definition of the character class.
> ASCII and CONTROL may be used in the future.
>
>>> ASCII [0x20-0x7e]
>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>
>>> // Recognized Patterns
>>> //
>>> {et} Empty
>>> {ft} Function_Type
>>> {fn} Function_Name
>>> {vt} Variable_Type
>>> {vn} Variable_Name
>>> {fh} Function_Header
>>>
>>> // DFA Definition to recognize C function headers
>>
>> No DFA can do that in general. You mean "recognise a very restricted
>> subset of C function headers".
>
> It recognizes everything that I will ever write.

Ah. That simplifies things, and alerts the reader not to check the DFA
since you can just say "I'd never write that!". However...

>>> // begin of function type
>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>
>> What does that [*] mean? Judging by the other uses of []s, you seem to
>> be accepting *s and digits at the start of a C function header even
>> though they won't be taken to be one of your named matches. Why single
>> out *s and digits?
>
> int* M(int* N);

This does not recognise the {fh} pattern. Putting the named
patterns into the string at the point the action would be triggered I
get

int* {ft}M({fn}int* {vt}N){vn}

(The ; does not help -- there is no specified transition for ';' is
state 0.)

Furthermore, this example does not explain why you permit digits. You
say you won't ever write them, but it's odd to permit them where they
are invalid. That "NUMERIC(00)" part looks like "cargo cult"
programming.

Kept for reference:
>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>
>>> // begin of function name
>>> <03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>> <05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)
>>>
>>> // begin of variable type
>>> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)

>>> // begin of variable name
>>> <09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>> <11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)
>>>
>>> // ignores all "//" comments
>>> <12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
>>> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)
>>>
>>> // look for comment terminator "*/"
>>> <14> ASCII_MINUS_ASTERISK(14) [*](15)
>>> <15> ASCII_MINUS_SLASH(14) [/](00)
>>

--
Ben.

Re: I finally completed my lexical analyzer generator ( semantic tautology )

<CfHdJ.120$QB1.113@fx42.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22683&group=comp.theory#22683

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx42.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator ( semantic
tautology )
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<mY2dJ.3216$k35.2640@fx33.iad>
<0e2dnU2hms9oXOn8nZ2dnUU7-SXNnZ2d@giganews.com>
<4h4dJ.71260$qe4.24572@fx45.iad>
<QJydnYuUluu0Tun8nZ2dnUU7-KvNnZ2d@giganews.com>
<FKadJ.9264$Np3.5602@fx06.iad>
<aeydnUhS_8Nn-uj8nZ2dnUU7-UnNnZ2d@giganews.com>
<5RgdJ.33089$1n1.21256@fx48.iad>
<0YednToPkq-aWuv8nZ2dnUU78LvNnZ2d@giganews.com>
From: Rich...@Damon-Family.org (Richard Damon)
In-Reply-To: <0YednToPkq-aWuv8nZ2dnUU78LvNnZ2d@giganews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 338
Message-ID: <CfHdJ.120$QB1.113@fx42.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Mon, 25 Oct 2021 19:40:17 -0400
X-Received-Bytes: 15390
 by: Richard Damon - Mon, 25 Oct 2021 23:40 UTC

On 10/25/21 11:02 AM, olcott wrote:
> On 10/24/2021 12:37 PM, Richard Damon wrote:
>> On 10/24/21 10:04 AM, olcott wrote:
>>> On 10/24/2021 5:40 AM, Richard Damon wrote:
>>>> On 10/23/21 11:29 PM, olcott wrote:
>>>>> On 10/23/2021 10:19 PM, Richard Damon wrote:
>>>>>> On 10/23/21 10:16 PM, olcott wrote:
>>>>>>> On 10/23/2021 8:49 PM, Richard Damon wrote:
>>>>>>>>
>>>>>>>> On 10/23/21 9:27 PM, olcott wrote:
>>>>>>>>> In order to make my halt decider a pure function it had to have
>>>>>>>>> a way to look at the inputs to function calls. In order to look
>>>>>>>>> at the inputs to function calls it had to know how many inputs
>>>>>>>>> that a function has.
>>>>>>>>>
>>>>>>>>> This is DFA analyzes C source code to provide the number of
>>>>>>>>> parameters of each function in the file. The number of
>>>>>>>>> parameters per function is the number of {vt} matches per {fn}
>>>>>>>>> match.
>>>>>>>>>
>>>>>>>>> The only thing that will change with this file is that the halt
>>>>>>>>> decider will use different halt deciding criteria so that the
>>>>>>>>> halt decider becomes a pure function.
>>>>>>>>>
>>>>>>>>> https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> In computer programming, a pure function is a function that has
>>>>>>>>> the following properties:[1][2]
>>>>>>>>>
>>>>>>>>> (1) The function return values are identical for identical
>>>>>>>>> arguments (no variation with local static variables, non-local
>>>>>>>>> variables, mutable reference arguments or input streams).
>>>>>>>>>
>>>>>>>>> (2) The function application has no side effects (no mutation
>>>>>>>>> of local static variables, non-local variables, mutable
>>>>>>>>> reference arguments or input/output streams).
>>>>>>>>>
>>>>>>>>> https://en.wikipedia.org/wiki/Pure_function
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> //
>>>>>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>>>>>> //  of C function headers.
>>>>>>>>>
>>>>>>>>> // Character Classes
>>>>>>>>> //
>>>>>>>>>      EMPTY [0]
>>>>>>>>>      ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>>>    NUMERIC [0123456789]
>>>>>>>>>         WS [0x09,0x0A,0x0D,0x20]
>>>>>>>>>     LPAREN [(]
>>>>>>>>>     RPAREN [)]
>>>>>>>>>   ASTERISK [*]
>>>>>>>>>      COMMA [,]
>>>>>>>>>    COMMENT [0x2f]
>>>>>>>>>    NEWLINE [0x0A]
>>>>>>>>>      ASCII [0x20-0x7e]
>>>>>>>>>    CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> // Recognized Patterns
>>>>>>>>> //
>>>>>>>>> {et} Empty
>>>>>>>>> {ft} Function_Type
>>>>>>>>> {fn} Function_Name
>>>>>>>>> {vt} Variable_Type
>>>>>>>>> {vn} Variable_Name
>>>>>>>>> {fh} Function_Header
>>>>>>>>>
>>>>>>>>> // DFA Definition to recognize C function headers
>>>>>>>>>
>>>>>>>>> // begin of function type
>>>>>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12)
>>>>>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>>>>>
>>>>>>>>> // begin of function name
>>>>>>>>> <03> WS    (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>>>>>> <05> WS    (05) ALPHA(00) NUMERIC(00) [*](00) [(]    (06)
>>>>>>>>>
>>>>>>>>> // begin of variable type
>>>>>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>>>>>>>>
>>>>>>>>> // begin of variable name
>>>>>>>>> <09> WS    (09) ALPHA(10) NUMERIC(00) [*]    (00)
>>>>>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>>>>>> <11> WS    (11) ALPHA(00) NUMERIC(00) [,]    (06) [)]    (00)
>>>>>>>>>
>>>>>>>>> // ignores all "//" comments
>>>>>>>>> <12> WS     (00) ALPHA(01)  NUMERIC(00) [*](00) [/](13)
>>>>>>>>> <13> CONTROL(13) ASCII(13)  [0x0A] (00)
>>>>>>>>>
>>>>>>>>
>>>>>>>> Ok,
>>>>>>>>
>>>>>>>> Just remember that being a 'Pure Funciton' isn't the actual
>>>>>>>> requirement, the decider needs to be a Mathematical Computation,
>>>>>>>> which means that all copies of it, when given the same inputs,
>>>>>>>> generates the same outputs.
>>>>>>>>
>>>>>>>> You STILL have the error that you treat H as a 'pure simulator'
>>>>>>>> when it is not, it is only a 'pure simulatior until' and as
>>>>>>>> such, the behavior of the copy of H in H^ DOES have an affect on
>>>>>>>> the behavior of that H^. Remember, a 'Pure Simulator' (aka a
>>>>>>>> UTM) NEVER stops simulating until the machine it is simulating
>>>>>>>> ends, even if that takes forever.
>>>>>>>>
>>>>>>>
>>>>>>> void Infinite_Loop()
>>>>>>> {
>>>>>>>    HERE: goto HERE;
>>>>>>> }
>>>>>>>
>>>>>>> _Infinite_Loop()
>>>>>>> [00000ab0](01)  55              push ebp
>>>>>>> [00000ab1](02)  8bec            mov ebp,esp
>>>>>>> [00000ab3](02)  ebfe            jmp 00000ab3
>>>>>>> [00000ab5](01)  5d              pop ebp
>>>>>>> [00000ab6](01)  c3              ret
>>>>>>> Size in bytes:(0007) [00000ab6]
>>>>>>>
>>>>>>> Are you saying that the only way that a simulating halt decider
>>>>>>> can correctly decide that the above code will never stop running
>>>>>>> is to wait until the end of time?
>>>>>>>
>>>>>>
>>>>>> No. You seem to have a reading comprension problem.
>>>>>>
>>>>>> The Simulating Halt Decider is fully allowed to abort the
>>>>>> simulation of the machine it is simulationg.
>>>>>>
>>>>>> The only issue is that IF it does so, it can't treat itself as if
>>>>>> it was a UTM/Pure SImulator, and thus the fact that it never saw
>>>>>> the comptation reach a halting state isn't proof of anything.
>>>>>
>>>>> When a simulating halt decider acts as if it is a pure simulator
>>>>> and watches the behavior of an infinite loop it can correctly abort
>>>>> the simulation of this input and report that this input never
>>>>> halts. We can generalize this simplest case of infinite execution
>>>>> to all other cases:
>>>>>
>>>>> All that I am doing is generalizing this same idea. When-so-ever a
>>>>> simulating halt decider can correctly axiomatically determine that
>>>>> its input would never halt if it remained a pure simulator then it
>>>>> can abort the simulation of this input and report that this input
>>>>> never halts.
>>>>>
>>>>> When a simulating halt decider correctly axiomatically determines X
>>>>> then we know that X is necessarily true.
>>>>>
>>>>>
>>>>
>>>> NO!
>>>>
>>>> You are making an INCORRECT generalization.
>>>
>>> When-so-ever X is correct about Y then X is not incorrect about Y is
>>> always true.
>>
>> And if X is not correct about all Y then X is not correct for all Y.
>
> Y is a specific unique instance.


Click here to read the complete article
Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22688&group=comp.theory#22688

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 25 Oct 2021 19:08:06 -0500
Date: Mon, 25 Oct 2021 19:08:06 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com> <87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com> <87wnm01y9s.fsf@bsb.me.uk>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <87wnm01y9s.fsf@bsb.me.uk>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com>
Lines: 153
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-N51qki8VKenszb6Rqh76pBJUTSoWrUwebQMiL9hc8iP3L2Jr/Q4sU5WR7ZI+wQ0RqeVMCgEAbjaNgeN!aN5H7hbXp2x5U0U2AV4yiBaXuwBogyIBh78kZFW+zbucF30itY8+ECVKKOkyNmxY1/ELWtByby0=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 6215
 by: olcott - Tue, 26 Oct 2021 00:08 UTC

On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
> olcott <NoOne@NoWhere.com> writes:
>
>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>> olcott <NoOne@NoWhere.com> writes:
>>>
>>>> Enhancements: (Assumes that the C source code compiles)
>>>> (a) Ignores /* */ comments
>>>> (b) Ignores #define lines
>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>
>>>> //
>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>> // of C function headers.
>>>>
>>>> // Character Classes
>>>> //
>>>> EMPTY [0]
>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>> NUMERIC [0123456789]
>>>> WS [0x09,0x0A,0x0D,0x20]
>>>> LPAREN [(]
>>>> RPAREN [)]
>>>> POUND [#]
>>>> ASTERISK [*] // 0x2a
>>>> COMMA [,]
>>>> SLASH [0x2f] // "/"
>>>> NEWLINE [0x0A]
>>>
>>> Why don't you use these last seven?
>>
>> I do use them.
>
> I meant why not use them in the code you posted.

They are used in the DFA shown below.

>
>> I can refer to either the name or the definition of the character class.
>> ASCII and CONTROL may be used in the future.
>>
>>>> ASCII [0x20-0x7e]
>>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>
>>>> // Recognized Patterns
>>>> //
>>>> {et} Empty
>>>> {ft} Function_Type
>>>> {fn} Function_Name
>>>> {vt} Variable_Type
>>>> {vn} Variable_Name
>>>> {fh} Function_Header
>>>>
>>>> // DFA Definition to recognize C function headers
>>>
>>> No DFA can do that in general. You mean "recognise a very restricted
>>> subset of C function headers".
>>
>> It recognizes everything that I will ever write.
>
> Ah. That simplifies things, and alerts the reader not to check the DFA
> since you can just say "I'd never write that!". However...
>
If I wanted a more robust function header recognizer I would adapt the
lex/yacc spec for C.

>>>> // begin of function type
>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>
>>> What does that [*] mean? Judging by the other uses of []s, you seem to
>>> be accepting *s and digits at the start of a C function header even
>>> though they won't be taken to be one of your named matches. Why single
>>> out *s and digits?
>>
>> int* M(int* N);
>
> This does not recognise the {fh} pattern. Putting the named
> patterns into the string at the point the action would be triggered I
> get

The above string would be rejected by the C compiler this never reach
the DFA reogonizer.

>
> int* {ft}M({fn}int* {vt}N){vn}
>
> (The ; does not help -- there is no specified transition for ';' is
> state 0.)
>
> Furthermore, this example does not explain why you permit digits.

It recognizes all valid C identifiers.

> You
> say you won't ever write them,

I did not say that I will not write digits.
I said that I don't need a full parser.

> but it's odd to permit them where they
> are invalid. That "NUMERIC(00)" part looks like "cargo cult"
> programming.
>

It was easiest to write this DFA from scratch when I explicitly
accounted for all of the character classes on every line.

This line skips white-space
matches the first char of a valid C identifier
ignores asterisk
matches the first char of a C comment
matches the first char of a C #define statement

>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)

> Kept for reference:
>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>
>>>> // begin of function name
>>>> <03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>> <05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)
>>>>
>>>> // begin of variable type
>>>> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>
>>>> // begin of variable name
>>>> <09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>> <11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)
>>>>
>>>> // ignores all "//" comments
>>>> <12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
>>>> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)
>>>>
>>>> // look for comment terminator "*/"
>>>> <14> ASCII_MINUS_ASTERISK(14) [*](15)
>>>> <15> ASCII_MINUS_SLASH(14) [/](00)
>>>
>

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<87a6iw1tjm.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22712&group=comp.theory#22712

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Date: Tue, 26 Oct 2021 02:09:01 +0100
Organization: A noiseless patient Spider
Lines: 173
Message-ID: <87a6iw1tjm.fsf@bsb.me.uk>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
<87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>
<87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="f434864a40ea3744be18b55cdd01f805";
logging-data="32304"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Gd0NW3RO2byvkWONHdjPEuI31JANNW8k="
Cancel-Lock: sha1:UfIfNbvzy95F1jm+JJci3qgYtSI=
sha1:C4gwc6LdTCNzDqyCsFPBc4doc0A=
X-BSB-Auth: 1.e1e992f157fd4863a624.20211026020901BST.87a6iw1tjm.fsf@bsb.me.uk
 by: Ben Bacarisse - Tue, 26 Oct 2021 01:09 UTC

olcott <NoOne@NoWhere.com> writes:

> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>> olcott <NoOne@NoWhere.com> writes:
>>
>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>> olcott <NoOne@NoWhere.com> writes:
>>>>
>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>> (a) Ignores /* */ comments
>>>>> (b) Ignores #define lines
>>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>>
>>>>> //
>>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>>> // of C function headers.
>>>>>
>>>>> // Character Classes
>>>>> //
>>>>> EMPTY [0]
>>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>> NUMERIC [0123456789]
>>>>> WS [0x09,0x0A,0x0D,0x20]
>>>>> LPAREN [(]
>>>>> RPAREN [)]
>>>>> POUND [#]
>>>>> ASTERISK [*] // 0x2a
>>>>> COMMA [,]
>>>>> SLASH [0x2f] // "/"
>>>>> NEWLINE [0x0A]
>>>>
>>>> Why don't you use these last seven?
>>>
>>> I do use them.
>> I meant why not use them in the code you posted.
>
> They are used in the DFA shown below.

No they are not.

>>> I can refer to either the name or the definition of the character class.
>>> ASCII and CONTROL may be used in the future.
>>>
>>>>> ASCII [0x20-0x7e]
>>>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>
>>>>> // Recognized Patterns
>>>>> //
>>>>> {et} Empty
>>>>> {ft} Function_Type
>>>>> {fn} Function_Name
>>>>> {vt} Variable_Type
>>>>> {vn} Variable_Name
>>>>> {fh} Function_Header
>>>>>
>>>>> // DFA Definition to recognize C function headers
>>>>
>>>> No DFA can do that in general. You mean "recognise a very restricted
>>>> subset of C function headers".
>>>
>>> It recognizes everything that I will ever write.
>>
>> Ah. That simplifies things, and alerts the reader not to check the DFA
>> since you can just say "I'd never write that!". However...
>>
> If I wanted a more robust function header recognizer I would adapt the
> lex/yacc spec for C.

Your DFA does not even recognise the one example you gave!

>>>>> // begin of function type
>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>>
>>>> What does that [*] mean? Judging by the other uses of []s, you seem to
>>>> be accepting *s and digits at the start of a C function header even
>>>> though they won't be taken to be one of your named matches. Why single
>>>> out *s and digits?
>>>
>>> int* M(int* N);
>>
>> This does not recognise the {fh} pattern. Putting the named
>> patterns into the string at the point the action would be triggered I
>> get
>
> The above string would be rejected by the C compiler this never reach
> the DFA reogonizer.

Don't be silly, of course it won't be rejected. I thought you knew a
bit about C. But given that you thought it would be rejected, why give
it as an example or the need to handle *s.

Anyway, even "int f(int x)" does not get recognised as a function
header. I thought you knew a bit about DFAs.

>> int* {ft}M({fn}int* {vt}N){vn}
>> (The ; does not help -- there is no specified transition for ';' is
>> state 0.)
>> Furthermore, this example does not explain why you permit digits.
>
> It recognizes all valid C identifiers.

Do you really not understand the DFA you wrote? I am asking why you
single out digits to be accepted in state 0. They form part of
identifiers, but that's not what state 0 is doing. You skip digits,
spaces and *s in a position where digits are meaning less.

>> You
>> say you won't ever write them,
>
> I did not say that I will not write digits.

You said you would not write

*1*x x(*x x()

and I am asking why you accept digits in state 0. Why single them out?
They are never valid in that position, but then there are lots of other
characters you could pointlessly accept in state 0 as well.

> I said that I don't need a full parser.
>
>> but it's odd to permit them where they
>> are invalid. That "NUMERIC(00)" part looks like "cargo cult"
>> programming.
>
> It was easiest to write this DFA from scratch when I explicitly
> accounted for all of the character classes on every line.

Except you don't do that. You account for some of them in most of the
lines.

> This line skips white-space
> matches the first char of a valid C identifier
> ignores asterisk
> matches the first char of a C comment
> matches the first char of a C #define statement
>
>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)

and "ignores" digits for some unexplained reason.

>> Kept for reference:
>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>>>>> <02> WS{ft}(03) ALPHA(00) NUMERIC(00) [*](02)
>>>>>
>>>>> // begin of function name
>>>>> <03> WS (03) ALPHA(04) NUMERIC(00) [*](00)
>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>>>> <05> WS (05) ALPHA(00) NUMERIC(00) [*](00) [(] (06)
>>>>>
>>>>> // begin of variable type
>>>>> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>>>>> <07> WS{vt}(09) ALPHA(07) NUMERIC(07) [*](08) [)]{fh}(00)
>>>>> <08> WS{vt}(09) ALPHA(00) NUMERIC(00) [*](08)
>>
>>>>> // begin of variable name
>>>>> <09> WS (09) ALPHA(10) NUMERIC(00) [*] (00) [)]{fh}(00)
>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>>>>> <11> WS (11) ALPHA(00) NUMERIC(00) [,] (06) [)] (00)
>>>>>
>>>>> // ignores all "//" comments
>>>>> <12> WS (00) ALPHA(01) NUMERIC(00) [*](14) [/](13)
>>>>> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)
>>>>>
>>>>> // look for comment terminator "*/"
>>>>> <14> ASCII_MINUS_ASTERISK(14) [*](15)
>>>>> <15> ASCII_MINUS_SLASH(14) [/](00)

--
Ben.

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22715&group=comp.theory#22715

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 25 Oct 2021 20:54:41 -0500
Date: Mon, 25 Oct 2021 20:54:40 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com> <87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com> <87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com> <87a6iw1tjm.fsf@bsb.me.uk>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <87a6iw1tjm.fsf@bsb.me.uk>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>
Lines: 138
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-99Qoq5qWlvSX9Zq0l6+L/fRdxpBsTb5hhNFaKDY+4RfTIHB6xh+xNWk0hZuGnKNnHNJIEgFgJCxbtkH!wj8IPUGXOEVNZM5cH59ahfnA6NDHri7ry2NiSMr3uPKH2ycUiUaBjE6g1yxIPbWOiA5hS0/1TwE=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 6097
 by: olcott - Tue, 26 Oct 2021 01:54 UTC

On 10/25/2021 8:09 PM, Ben Bacarisse wrote:
> olcott <NoOne@NoWhere.com> writes:
>
>> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>>> olcott <NoOne@NoWhere.com> writes:
>>>
>>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>
>>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>>> (a) Ignores /* */ comments
>>>>>> (b) Ignores #define lines
>>>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>>>
>>>>>> //
>>>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>>>> // of C function headers.
>>>>>>
>>>>>> // Character Classes
>>>>>> //
>>>>>> EMPTY [0]
>>>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>> NUMERIC [0123456789]
>>>>>> WS [0x09,0x0A,0x0D,0x20]
>>>>>> LPAREN [(]
>>>>>> RPAREN [)]
>>>>>> POUND [#]
>>>>>> ASTERISK [*] // 0x2a
>>>>>> COMMA [,]
>>>>>> SLASH [0x2f] // "/"
>>>>>> NEWLINE [0x0A]
>>>>>
>>>>> Why don't you use these last seven?
>>>>
>>>> I do use them.
>>> I meant why not use them in the code you posted.
>>
>> They are used in the DFA shown below.
>
> No they are not.

Here is LPAREN: [(]{fn}(06)
>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)

Here is RPAREN: [)]{fh}(00)
>>>>>> <06> WS (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)

Here is POUND: [#](13)
Here is SLASH: [/](12)
>>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)

Here is ASTERISK: [*](02)
>>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)

Here is COMMA: [,]{vn}(06)
>>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)

Here is NEWLINE: [0x0A] (00)
>>>>>> <13> ASCII_MINUS_NEWLINE(13) [0x0A] (00)

>>>> I can refer to either the name or the definition of the character class.
>>>> ASCII and CONTROL may be used in the future.
>>>>
>>>>>> ASCII [0x20-0x7e]
>>>>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>
>>>>>> // Recognized Patterns
>>>>>> //
>>>>>> {et} Empty
>>>>>> {ft} Function_Type
>>>>>> {fn} Function_Name
>>>>>> {vt} Variable_Type
>>>>>> {vn} Variable_Name
>>>>>> {fh} Function_Header
>>>>>>
>>>>>> // DFA Definition to recognize C function headers
>>>>>
>>>>> No DFA can do that in general. You mean "recognise a very restricted
>>>>> subset of C function headers".
>>>>
>>>> It recognizes everything that I will ever write.
>>>
>>> Ah. That simplifies things, and alerts the reader not to check the DFA
>>> since you can just say "I'd never write that!". However...
>>>
>> If I wanted a more robust function header recognizer I would adapt the
>> lex/yacc spec for C.
>
> Your DFA does not even recognise the one example you gave!
>

Why did you delete it? Here is is being correctly recognized:
int* M(int* N);

[i] State(00) NextState(01) LineNumber(0006)
[n] State(01) NextState(01) LineNumber(0006)
[t] State(01) NextState(01) LineNumber(0006)
[*] State(01) NextState(02) LineNumber(0006)
[ ] State(02) {ft} NextState(03) LineNumber(0006)
[M] State(03) NextState(04) LineNumber(0006)
[(] State(04) {fn} NextState(06) LineNumber(0006)
[i] State(06) NextState(07) LineNumber(0006)
[n] State(07) NextState(07) LineNumber(0006)
[t] State(07) NextState(07) LineNumber(0006)
[*] State(07) NextState(08) LineNumber(0006)
[ ] State(08) {vt} NextState(09) LineNumber(0006)
[N] State(09) NextState(10) LineNumber(0006)
[)] State(10) {vn} NextState(00) LineNumber(0006)
insert("M", 1);

>>>>>> // begin of function type
>>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>>>
>>>>> What does that [*] mean? Judging by the other uses of []s, you seem to
>>>>> be accepting *s and digits at the start of a C function header even
>>>>> though they won't be taken to be one of your named matches. Why single
>>>>> out *s and digits?
>>>>
>>>> int* M(int* N);
>>>
>>> This does not recognise the {fh} pattern. Putting the named
>>> patterns into the string at the point the action would be triggered I
>>> get
>>

Your:
*1*x x(*x x()
was rejected by the C compiler.

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<sl8n3r$j10$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22725&group=comp.theory#22725

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: news.x.r...@xoxy.net (Richard Damon)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Date: Tue, 26 Oct 2021 07:00:11 -0400
Organization: A noiseless patient Spider
Lines: 142
Message-ID: <sl8n3r$j10$1@dont-email.me>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com> <87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com> <87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com> <87a6iw1tjm.fsf@bsb.me.uk>
<GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 26 Oct 2021 11:00:12 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c260e19cbe3d201ef55eee59c28ba728";
logging-data="19488"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18vdDgr1RAYmzieSFY6ViBYijIsvzRkLHw="
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.2.1
Cancel-Lock: sha1:szLKkY54ALWJN7UHYNHLzKoQc2M=
In-Reply-To: <GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>
Content-Language: en-US
 by: Richard Damon - Tue, 26 Oct 2021 11:00 UTC

On 10/25/21 9:54 PM, olcott wrote:
> On 10/25/2021 8:09 PM, Ben Bacarisse wrote:
>> olcott <NoOne@NoWhere.com> writes:
>>
>>> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>>>> olcott <NoOne@NoWhere.com> writes:
>>>>
>>>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>>
>>>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>>>> (a) Ignores /* */ comments
>>>>>>> (b) Ignores #define lines
>>>>>>> (c) Correctly handles trailing space in: int Function_Name(void   )
>>>>>>>
>>>>>>> //
>>>>>>> //  Deterministic Finite Automaton (DFA) recognizer
>>>>>>> //  of C function headers.
>>>>>>>
>>>>>>> // Character Classes
>>>>>>> //
>>>>>>>        EMPTY [0]
>>>>>>>        ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>      NUMERIC [0123456789]
>>>>>>>           WS [0x09,0x0A,0x0D,0x20]
>>>>>>>       LPAREN [(]
>>>>>>>       RPAREN [)]
>>>>>>>        POUND [#]
>>>>>>>     ASTERISK [*]     // 0x2a
>>>>>>>        COMMA [,]
>>>>>>>        SLASH [0x2f]  // "/"
>>>>>>>      NEWLINE [0x0A]
>>>>>>
>>>>>> Why don't you use these last seven?
>>>>>
>>>>> I do use them.
>>>> I meant why not use them in the code you posted.
>>>
>>> They are used in the DFA shown below.
>>
>> No they are not.
>
> Here is LPAREN: [(]{fn}(06)
> >>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>
> Here is RPAREN: [)]{fh}(00)
> >>>>>> <06> WS    (06) ALPHA(07) NUMERIC(00) [*](00) [)]{fh}(00)
>
> Here is POUND: [#](13)
> Here is SLASH: [/](12)
> >>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>
> Here is ASTERISK: [*](02)
> >>>>>> <01> WS{ft}(03) ALPHA(01) NUMERIC(01) [*](02)
>
> Here is COMMA:  [,]{vn}(06)
> >>>>>> <10> WS{vn}(11) ALPHA(10) NUMERIC(10) [,]{vn}(06) [)]{vn}(00)
>
> Here is NEWLINE: [0x0A] (00)
> >>>>>> <13> ASCII_MINUS_NEWLINE(13)  [0x0A] (00)

You do understand that NONE of these cases are using the class
definitions you are talking about, just reference the same set of
characters that the class uses.
>
>>>>> I can refer to either the name or the definition of the character
>>>>> class.
>>>>> ASCII and CONTROL may be used in the future.
>>>>>
>>>>>>>        ASCII [0x20-0x7e]
>>>>>>>         ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>>>>>        ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>>>>>           ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>>>>>      CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>
>>>>>>> // Recognized Patterns
>>>>>>> //
>>>>>>> {et} Empty
>>>>>>> {ft} Function_Type
>>>>>>> {fn} Function_Name
>>>>>>> {vt} Variable_Type
>>>>>>> {vn} Variable_Name
>>>>>>> {fh} Function_Header
>>>>>>>
>>>>>>> // DFA Definition to recognize C function headers
>>>>>>
>>>>>> No DFA can do that in general.  You mean "recognise a very restricted
>>>>>> subset of C function headers".
>>>>>
>>>>> It recognizes everything that I will ever write.
>>>>
>>>> Ah.  That simplifies things, and alerts the reader not to check the DFA
>>>> since you can just say "I'd never write that!".  However...
>>>>
>>> If I wanted a more robust function header recognizer I would adapt the
>>> lex/yacc spec for C.
>>
>> Your DFA does not even recognise the one example you gave!
>>
>
> Why did you delete it? Here is is being correctly recognized:
> int* M(int* N);
>
>  [i]  State(00)        NextState(01)  LineNumber(0006)
>  [n]  State(01)        NextState(01)  LineNumber(0006)
>  [t]  State(01)        NextState(01)  LineNumber(0006)
>  [*]  State(01)        NextState(02)  LineNumber(0006)
>  [ ]  State(02)  {ft}  NextState(03)  LineNumber(0006)
>  [M]  State(03)        NextState(04)  LineNumber(0006)
>  [(]  State(04)  {fn}  NextState(06)  LineNumber(0006)
>  [i]  State(06)        NextState(07)  LineNumber(0006)
>  [n]  State(07)        NextState(07)  LineNumber(0006)
>  [t]  State(07)        NextState(07)  LineNumber(0006)
>  [*]  State(07)        NextState(08)  LineNumber(0006)
>  [ ]  State(08)  {vt}  NextState(09)  LineNumber(0006)
>  [N]  State(09)        NextState(10)  LineNumber(0006)
>  [)]  State(10)  {vn}  NextState(00)  LineNumber(0006)
>   insert("M", 1);
>
>
>>>>>>> // begin of function type
>>>>>>> <00> WS    (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>>>>
>>>>>> What does that [*] mean?  Judging by the other uses of []s, you
>>>>>> seem to
>>>>>> be accepting *s and digits at the start of a C function header even
>>>>>> though they won't be taken to be one of your named matches.  Why
>>>>>> single
>>>>>> out *s and digits?
>>>>>
>>>>> int* M(int* N);
>>>>
>>>> This does not recognise the {fh} pattern.  Putting the named
>>>> patterns into the string at the point the action would be triggered I
>>>> get
>>>
>
> Your:
> *1*x x(*x x()
> was rejected by the C compiler.
>

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<87pmrrzy74.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22728&group=comp.theory#22728

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Date: Tue, 26 Oct 2021 14:56:47 +0100
Organization: A noiseless patient Spider
Lines: 150
Message-ID: <87pmrrzy74.fsf@bsb.me.uk>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
<87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>
<87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com>
<87a6iw1tjm.fsf@bsb.me.uk>
<GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="f434864a40ea3744be18b55cdd01f805";
logging-data="21330"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1817yw0eYjwE52Cz26fCF3soAUgHos9U98="
Cancel-Lock: sha1:XaxS3KSSgcvr888N6UOO9a31j8o=
sha1:AMt+NTYy9uwBF6sKnfpXCQnbrlA=
X-BSB-Auth: 1.6f2fd6af103ecb3ecc6d.20211026145647BST.87pmrrzy74.fsf@bsb.me.uk
 by: Ben Bacarisse - Tue, 26 Oct 2021 13:56 UTC

olcott <NoOne@NoWhere.com> writes:

> On 10/25/2021 8:09 PM, Ben Bacarisse wrote:
>> olcott <NoOne@NoWhere.com> writes:
>>
>>> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>>>> olcott <NoOne@NoWhere.com> writes:
>>>>
>>>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>>
>>>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>>>> (a) Ignores /* */ comments
>>>>>>> (b) Ignores #define lines
>>>>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>>>>
>>>>>>> //
>>>>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>>>>> // of C function headers.
>>>>>>>
>>>>>>> // Character Classes
>>>>>>> //
>>>>>>> EMPTY [0]
>>>>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>> NUMERIC [0123456789]
>>>>>>> WS [0x09,0x0A,0x0D,0x20]
>>>>>>> LPAREN [(]
>>>>>>> RPAREN [)]
>>>>>>> POUND [#]
>>>>>>> ASTERISK [*] // 0x2a
>>>>>>> COMMA [,]
>>>>>>> SLASH [0x2f] // "/"
>>>>>>> NEWLINE [0x0A]
>>>>>>
>>>>>> Why don't you use these last seven?
>>>>>
>>>>> I do use them.
>>>>
>>>> I meant why not use them in the code you posted.
>>>
>>> They are used in the DFA shown below.
>>
>> No they are not.
>
> Here is LPAREN: [(]{fn}(06)
>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)

No. That state uses the definitions ALPHA and NUMERIC but it does not
use the definition LPAREN. The point, since I seem t have to spell it
out, is why name the class is you are not going to use the named
versions? It makes the read think you don't know how the notation
works.

>>>>> I can refer to either the name or the definition of the character class.
>>>>> ASCII and CONTROL may be used in the future.
>>>>>
>>>>>>> ASCII [0x20-0x7e]
>>>>>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>>>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>>>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>>>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>
>>>>>>> // Recognized Patterns
>>>>>>> //
>>>>>>> {et} Empty
>>>>>>> {ft} Function_Type
>>>>>>> {fn} Function_Name
>>>>>>> {vt} Variable_Type
>>>>>>> {vn} Variable_Name
>>>>>>> {fh} Function_Header
>>>>>>>
>>>>>>> // DFA Definition to recognize C function headers
>>>>>>
>>>>>> No DFA can do that in general. You mean "recognise a very restricted
>>>>>> subset of C function headers".
>>>>>
>>>>> It recognizes everything that I will ever write.
>>>>
>>>> Ah. That simplifies things, and alerts the reader not to check the DFA
>>>> since you can just say "I'd never write that!". However...
>>>>
>>> If I wanted a more robust function header recognizer I would adapt the
>>> lex/yacc spec for C.
>>
>> Your DFA does not even recognise the one example you gave!
>
> Why did you delete it?

I didn't. It is still quoted in the post you are replying to here and
you have kept in your reply and it is still there in this post.

> Here is is being correctly recognized:
> int* M(int* N);
>
> [i] State(00) NextState(01) LineNumber(0006)
> [n] State(01) NextState(01) LineNumber(0006)
> [t] State(01) NextState(01) LineNumber(0006)
> [*] State(01) NextState(02) LineNumber(0006)
> [ ] State(02) {ft} NextState(03) LineNumber(0006)
> [M] State(03) NextState(04) LineNumber(0006)
> [(] State(04) {fn} NextState(06) LineNumber(0006)
> [i] State(06) NextState(07) LineNumber(0006)
> [n] State(07) NextState(07) LineNumber(0006)
> [t] State(07) NextState(07) LineNumber(0006)
> [*] State(07) NextState(08) LineNumber(0006)
> [ ] State(08) {vt} NextState(09) LineNumber(0006)
> [N] State(09) NextState(10) LineNumber(0006)
> [)] State(10) {vn} NextState(00) LineNumber(0006)
> insert("M", 1);

It is not recognised as matching the {fh} pattern. That's (apparently)
the pattern for a function header. Some things do match the {fh}
pattern. For example "int M(void)".

Now you may have fudged things by making the action associated with the
{vn} action trigger whatever it is you want to with a function header,
but that's a hack. Or maybe you've hacked it to work in some other way,
but some function headers do match the correct named pattern, but most
don't.

>>>>>>> // begin of function type
>>>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>>>>
>>>>>> What does that [*] mean? Judging by the other uses of []s, you seem to
>>>>>> be accepting *s and digits at the start of a C function header even
>>>>>> though they won't be taken to be one of your named matches. Why single
>>>>>> out *s and digits?
>>>>>
>>>>> int* M(int* N);
>>>>
>>>> This does not recognise the {fh} pattern. Putting the named
>>>> patterns into the string at the point the action would be triggered I
>>>> get

This is where you should have show that example not being recognised and
then you would not accused me of deleting the example!

> Your:
> *1*x x(*x x()
> was rejected by the C compiler.

Yes. But right after I complained about your "int* M(int* N);" example
not matching as a header you said

"The above string would be rejected by the C compiler"

which is obviously not the case.

--
Ben.

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<ubudnamzFLZhjuX8nZ2dnUU7-WfNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22731&group=comp.theory#22731

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 26 Oct 2021 09:43:08 -0500
Date: Tue, 26 Oct 2021 09:43:07 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.2.1
Subject: Re: I finally completed my lexical analyzer generator (needed by my
halt decider) update
Content-Language: en-US
Newsgroups: comp.theory
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com> <87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com> <87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com> <87a6iw1tjm.fsf@bsb.me.uk>
<GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com> <87pmrrzy74.fsf@bsb.me.uk>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <87pmrrzy74.fsf@bsb.me.uk>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <ubudnamzFLZhjuX8nZ2dnUU7-WfNnZ2d@giganews.com>
Lines: 190
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-LIzgv95iW+EL8yIPnH49iHxdC7KPNwpN+Kck4JoVl9bKnWRBguZKsgNNsAeIRbU4tQB4ptnOYPmpX39!dUILtPI5i8grXLVBQw/UHhZeBzOD6EhPtECr0thgBVRCl5doyRC5qaHJv3d1gOwmyIRvWJK8xVg=
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 8440
 by: olcott - Tue, 26 Oct 2021 14:43 UTC

On 10/26/2021 8:56 AM, Ben Bacarisse wrote:
> olcott <NoOne@NoWhere.com> writes:
>
>> On 10/25/2021 8:09 PM, Ben Bacarisse wrote:
>>> olcott <NoOne@NoWhere.com> writes:
>>>
>>>> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>
>>>>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>>>
>>>>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>>>>> (a) Ignores /* */ comments
>>>>>>>> (b) Ignores #define lines
>>>>>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>>>>>
>>>>>>>> //
>>>>>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>>>>>> // of C function headers.
>>>>>>>>
>>>>>>>> // Character Classes
>>>>>>>> //
>>>>>>>> EMPTY [0]
>>>>>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>> NUMERIC [0123456789]
>>>>>>>> WS [0x09,0x0A,0x0D,0x20]
>>>>>>>> LPAREN [(]
>>>>>>>> RPAREN [)]
>>>>>>>> POUND [#]
>>>>>>>> ASTERISK [*] // 0x2a
>>>>>>>> COMMA [,]
>>>>>>>> SLASH [0x2f] // "/"
>>>>>>>> NEWLINE [0x0A]
>>>>>>>
>>>>>>> Why don't you use these last seven?
>>>>>>
>>>>>> I do use them.
>>>>>
>>>>> I meant why not use them in the code you posted.
>>>>
>>>> They are used in the DFA shown below.
>>>
>>> No they are not.
>>
>> Here is LPAREN: [(]{fn}(06)
>>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>
> No. That state uses the definitions ALPHA and NUMERIC but it does not
> use the definition LPAREN.

I told you this before yet you did not notice because your entire focus
is on rebuttal with no weight what-so-ever to understand.

A character class can be referred to in the DFA by its name of by its
definition. Because [(] is more concise than LPAREN I used the
definition instead of the name.

> The point, since I seem t have to spell it
> out, is why name the class is you are not going to use the named
> versions? It makes the read think you don't know how the notation
> works.
>
>>>>>> I can refer to either the name or the definition of the character class.
>>>>>> ASCII and CONTROL may be used in the future.
>>>>>>
>>>>>>>> ASCII [0x20-0x7e]
>>>>>>>> ASCII_MINUS_NEWLINE [0x00-0x09,0x0b-0x7f]
>>>>>>>> ASCII_MINUS_ASTERISK [0x00-0x29,0x2b-0x7f]
>>>>>>>> ASCII_MINUS_SLASH [0x00-0x2e,0x30-0x7f]
>>>>>>>> CONTROL [0x00-0x09,0x0b-0x1f,0x7f]
>>>>>>>>
>>>>>>>> // Recognized Patterns
>>>>>>>> //
>>>>>>>> {et} Empty
>>>>>>>> {ft} Function_Type
>>>>>>>> {fn} Function_Name
>>>>>>>> {vt} Variable_Type
>>>>>>>> {vn} Variable_Name
>>>>>>>> {fh} Function_Header
>>>>>>>>
>>>>>>>> // DFA Definition to recognize C function headers
>>>>>>>
>>>>>>> No DFA can do that in general. You mean "recognise a very restricted
>>>>>>> subset of C function headers".
>>>>>>
>>>>>> It recognizes everything that I will ever write.
>>>>>
>>>>> Ah. That simplifies things, and alerts the reader not to check the DFA
>>>>> since you can just say "I'd never write that!". However...
>>>>>
>>>> If I wanted a more robust function header recognizer I would adapt the
>>>> lex/yacc spec for C.
>>>
>>> Your DFA does not even recognise the one example you gave!
>>
>> Why did you delete it?
>
> I didn't. It is still quoted in the post you are replying to here and
> you have kept in your reply and it is still there in this post.
>
>> Here is is being correctly recognized:
>> int* M(int* N);
>>
>> [i] State(00) NextState(01) LineNumber(0006)
>> [n] State(01) NextState(01) LineNumber(0006)
>> [t] State(01) NextState(01) LineNumber(0006)
>> [*] State(01) NextState(02) LineNumber(0006)
>> [ ] State(02) {ft} NextState(03) LineNumber(0006)
>> [M] State(03) NextState(04) LineNumber(0006)
>> [(] State(04) {fn} NextState(06) LineNumber(0006)
>> [i] State(06) NextState(07) LineNumber(0006)
>> [n] State(07) NextState(07) LineNumber(0006)
>> [t] State(07) NextState(07) LineNumber(0006)
>> [*] State(07) NextState(08) LineNumber(0006)
>> [ ] State(08) {vt} NextState(09) LineNumber(0006)
>> [N] State(09) NextState(10) LineNumber(0006)
>> [)] State(10) {vn} NextState(00) LineNumber(0006)
>> insert("M", 1);
>
> It is not recognised as matching the {fh} pattern. That's (apparently)

I already told you this before but because you only want to provide a
rebuttal and don't give a rat's ass about understanding what I say you
missed the explanition.

Because each state can only recognize a single pattern and state (10)
must recognize {vn} I use a separate semantic action to recognize {fh}.

> the pattern for a function header. Some things do match the {fh}
> pattern. For example "int M(void)".
>
> Now you may have fudged things by making the action associated with the
> {vn} action trigger whatever it is you want to with a function header,
> but that's a hack. Or maybe you've hacked it to work in some other way,
> but some function headers do match the correct named pattern, but most
> don't.
>
>>>>>>>> // begin of function type
>>>>>>>> <00> WS (00) ALPHA(01) NUMERIC(00) [*](00) [/](12) [#](13)
>>>>>>>
>>>>>>> What does that [*] mean? Judging by the other uses of []s, you seem to
>>>>>>> be accepting *s and digits at the start of a C function header even
>>>>>>> though they won't be taken to be one of your named matches. Why single
>>>>>>> out *s and digits?
>>>>>>
>>>>>> int* M(int* N);
>>>>>
>>>>> This does not recognise the {fh} pattern. Putting the named
>>>>> patterns into the string at the point the action would be triggered I
>>>>> get
>
> This is where you should have show that example not being recognised and
> then you would not accused me of deleting the example!
>
>> Your:
>> *1*x x(*x x()
>> was rejected by the C compiler.
>
> Yes. But right after I complained about your "int* M(int* N);" example
> not matching as a header you said
>

I already said that I have separate semantic actions that augment the
recognizer and you simply ignored that part because it was not useful
for your rebuttal.

This is the semantic action that recognizes Function Headers

bool RecognizedFunctionHeader(u8 OneByte, int State)
{ return (OneByte == ')' && (State == 6 || State == 7 || State == 9 ||
State == 10 || State == 11));
}

*1*x x(*x x()

> "The above string would be rejected by the C compiler"
>
> which is obviously not the case.
>

Why say something so foolish as that?

--
Copyright 2021 Pete Olcott

"Great spirits have always encountered violent opposition from mediocre
minds." Einstein

Re: I finally completed my lexical analyzer generator (needed by my halt decider) update

<87ee87z9mm.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=22747&group=comp.theory#22747

  copy link   Newsgroups: comp.theory
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.theory
Subject: Re: I finally completed my lexical analyzer generator (needed by my halt decider) update
Date: Tue, 26 Oct 2021 23:47:29 +0100
Organization: A noiseless patient Spider
Lines: 154
Message-ID: <87ee87z9mm.fsf@bsb.me.uk>
References: <TpydnRmO3dkGK-n8nZ2dnUU7-c3NnZ2d@giganews.com>
<GLWdnSs1lLhuOuj8nZ2dnUU7-UnNnZ2d@giganews.com>
<87bl3d3o80.fsf@bsb.me.uk>
<xYSdnUeGwL7Okev8nZ2dnUU7-dPNnZ2d@giganews.com>
<87wnm01y9s.fsf@bsb.me.uk>
<nPqdnbNMHNB72-r8nZ2dnUU7-S3NnZ2d@giganews.com>
<87a6iw1tjm.fsf@bsb.me.uk>
<GMydnZtvI8x8wur8nZ2dnUU7-avNnZ2d@giganews.com>
<87pmrrzy74.fsf@bsb.me.uk>
<ubudnamzFLZhjuX8nZ2dnUU7-WfNnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="7c217cb6761857df3da7947ba72c3b63";
logging-data="31714"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18LJ1qL4Dj/YQq+TVV30dRkpEQkTVAiIAY="
Cancel-Lock: sha1:9tnypP/C2rPzFqI96udK3sa5FxM=
sha1:BPR6KT01CBckxf5TUVmlDFROqnY=
X-BSB-Auth: 1.f62f7813f5404ee4ef3c.20211026234729BST.87ee87z9mm.fsf@bsb.me.uk
 by: Ben Bacarisse - Tue, 26 Oct 2021 22:47 UTC

olcott <NoOne@NoWhere.com> writes:

> On 10/26/2021 8:56 AM, Ben Bacarisse wrote:
>> olcott <NoOne@NoWhere.com> writes:
>>
>>> On 10/25/2021 8:09 PM, Ben Bacarisse wrote:
>>>> olcott <NoOne@NoWhere.com> writes:
>>>>
>>>>> On 10/25/2021 6:26 PM, Ben Bacarisse wrote:
>>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>>
>>>>>>> On 10/24/2021 8:08 PM, Ben Bacarisse wrote:
>>>>>>>> olcott <NoOne@NoWhere.com> writes:
>>>>>>>>
>>>>>>>>> Enhancements: (Assumes that the C source code compiles)
>>>>>>>>> (a) Ignores /* */ comments
>>>>>>>>> (b) Ignores #define lines
>>>>>>>>> (c) Correctly handles trailing space in: int Function_Name(void )
>>>>>>>>>
>>>>>>>>> //
>>>>>>>>> // Deterministic Finite Automaton (DFA) recognizer
>>>>>>>>> // of C function headers.
>>>>>>>>>
>>>>>>>>> // Character Classes
>>>>>>>>> //
>>>>>>>>> EMPTY [0]
>>>>>>>>> ALPHA [ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz]
>>>>>>>>> NUMERIC [0123456789]
>>>>>>>>> WS [0x09,0x0A,0x0D,0x20]
>>>>>>>>> LPAREN [(]
>>>>>>>>> RPAREN [)]
>>>>>>>>> POUND [#]
>>>>>>>>> ASTERISK [*] // 0x2a
>>>>>>>>> COMMA [,]
>>>>>>>>> SLASH [0x2f] // "/"
>>>>>>>>> NEWLINE [0x0A]
>>>>>>>>
>>>>>>>> Why don't you use these last seven?
>>>>>>>
>>>>>>> I do use them.
>>>>>>
>>>>>> I meant why not use them in the code you posted.
>>>>>
>>>>> They are used in the DFA shown below.
>>>>
>>>> No they are not.
>>>
>>> Here is LPAREN: [(]{fn}(06)
>>>>>>>>> <04> WS{fn}(05) ALPHA(04) NUMERIC(04) [*](00) [(]{fn}(06)
>>
>> No. That state uses the definitions ALPHA and NUMERIC but it does not
>> use the definition LPAREN.
>
> I told you this before yet you did not notice because your entire
> focus is on rebuttal with no weight what-so-ever to understand.
>
> A character class can be referred to in the DFA by its name of by its
> definition. Because [(] is more concise than LPAREN I used the
> definition instead of the name.

Obviously. That's not the issue. You don't use the named definitions.
It looks sloppy to give definitions that you don't use. Just like it
looks sloppy to include "NUMERIC(00)" in state 0 when digits are invalid
at that point. Why single them out? It looks like writing code by
rote, rather than with careful consideration.

>>> Here is is being correctly recognized:
>>> int* M(int* N);
>>>
>>> [i] State(00) NextState(01) LineNumber(0006)
>>> [n] State(01) NextState(01) LineNumber(0006)
>>> [t] State(01) NextState(01) LineNumber(0006)
>>> [*] State(01) NextState(02) LineNumber(0006)
>>> [ ] State(02) {ft} NextState(03) LineNumber(0006)
>>> [M] State(03) NextState(04) LineNumber(0006)
>>> [(] State(04) {fn} NextState(06) LineNumber(0006)
>>> [i] State(06) NextState(07) LineNumber(0006)
>>> [n] State(07) NextState(07) LineNumber(0006)
>>> [t] State(07) NextState(07) LineNumber(0006)
>>> [*] State(07) NextState(08) LineNumber(0006)
>>> [ ] State(08) {vt} NextState(09) LineNumber(0006)
>>> [N] State(09) NextState(10) LineNumber(0006)
>>> [)] State(10) {vn} NextState(00) LineNumber(0006)
>>> insert("M", 1);
>>
>> It is not recognised as matching the {fh} pattern. That's (apparently)
>
> I already told you this before but because you only want to provide a
> rebuttal and don't give a rat's ass about understanding what I say you
> missed the explanition.
>
> Because each state can only recognize a single pattern and state (10)
> must recognize {vn} I use a separate semantic action to recognize
> {fh}.

The string you gave does not match the function header pattern. Your
"explanation" explains nothing. You just confirm confirming that the
DFA does not recognise "int* M(int* N)" as a function header. The DFA
stops after recognising a "vn" (variable name?).

>> Yes. But right after I complained about your "int* M(int* N);" example
>> not matching as a header you said
>
> I already said that I have separate semantic actions that augment the
> recognizer and you simply ignored that part because it was not useful
> for your rebuttal.
>
> This is the semantic action that recognizes Function Headers
>
> bool RecognizedFunctionHeader(u8 OneByte, int State)
> {
> return (OneByte == ')' && (State == 6 || State == 7 || State == 9 || State == 10 || State == 11));
> }
>
> *1*x x(*x x()
>
>> "The above string would be rejected by the C compiler"
>> which is obviously not the case.
>
> Why say something so foolish as that?

I know you are not above lying. I know you persist in dishonestly
omitting key parts of Linz's argument about halting. But I never
thought you'd edit and re-order a reply to score a cheap point. For
some reason it seems particularly shameful that you'd do this.

Here is the exchange:

|>> int* M(int* N);
|>
|> This does not recognise the {fh} pattern. Putting the named
|> patterns into the string at the point the action would be triggered I
|> get
|
|The above string would be rejected by the C compiler this never reach
|the DFA reogonizer.
|
|> int* {ft}M({fn}int* {vt}N){vn}

Just look at how you have re-edited that simple exchange.

You gave an example. I told you your DFA does not recognise it as a
function header. You say "the above string would be rejected by the C
compiler".

The string you dishonestly re-inserted into the exchange "*1*x x(*x x()"
does not even appear, quoted or otherwise, in your post so you don't
even have the excuse that "the above string" was supposed to refer to
something further above than the obvious candidate.

You rarely shock me anymore, but I'm shocked by this behaviour.

--
Ben.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor