Deutsch English Français Italiano |
<vs6rt6$3bo7s$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Jeff Barnett <jbb@notatt.com> Newsgroups: comp.theory Subject: Re: neos Universal Compiler and FORTRAN IV Date: Fri, 28 Mar 2025 13:05:10 -0600 Organization: A noiseless patient Spider Lines: 108 Message-ID: <vs6rt6$3bo7s$1@dont-email.me> References: <UX6BP.512735$Kb9a.408485@fx16.ams4> <vr3ir8$39jtg$1@dont-email.me> <3KgBP.513160$Kb9a.94584@fx16.ams4> <vr6948$1jnlo$1@dont-email.me> <KWEBP.424367$NN2a.82900@fx15.ams4> <vr8pi1$3r8lv$1@dont-email.me> <NrYBP.191725$C8m7.108955@fx11.ams4> <vrbu8h$2km30$1@dont-email.me> <S7fCP.743699$nb1.627959@fx01.ams4> <vre64b$lcu3$1@dont-email.me> <2AACP.939386$gHk7.592478@fx17.ams4> <vreqb6$174ma$1@dont-email.me> <vs6334$2mosu$1@dont-email.me> <S8yFP.697907$B61.152494@fx02.ams4> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Fri, 28 Mar 2025 20:05:11 +0100 (CET) Injection-Info: dont-email.me; posting-host="74e1bff796ed028f16f9ce8a713e0185"; logging-data="3531004"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196wseZ3W7nDunX7iqQ91u6XjWiGHSlH44=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:wYFYWFJg2gFoMIGuowkZhNxB0TM= In-Reply-To: <S8yFP.697907$B61.152494@fx02.ams4> Content-Language: en-US Bytes: 5442 On 3/28/2025 8:14 AM, Mr Flibble wrote: > On Fri, 28 Mar 2025 14:01:40 +0200, Mikko wrote: > >> On 2025-03-19 16:11:18 +0000, Mikko said: >> >>> On 2025-03-19 14:32:30 +0000, Mr Flibble said: >>> >>>> On Wed, 19 Mar 2025 12:26:20 +0200, Mikko wrote: >>>> >>>>> On 2025-03-18 14:08:50 +0000, Mr Flibble said: >>>>> >>>>>> On Tue, 18 Mar 2025 15:59:45 +0200, Mikko wrote: >>>>>> >>>>>>> On 2025-03-17 16:53:01 +0000, Mr Flibble said: >>>>>>> >>>>>>>> On Mon, 17 Mar 2025 11:21:05 +0200, Mikko wrote: >>>>>>>> >>>>>>>>> On 2025-03-16 18:40:42 +0000, Mr Flibble said: >>>>>>>>> >>>>>>>>>> On Sun, 16 Mar 2025 12:28:24 +0200, Mikko wrote: >>>>>>>>>> >>>>>>>>>>> On 2025-03-15 15:08:47 +0000, Mr Flibble said: >>>>>>>>>>> >>>>>>>>>>>> On Sat, 15 Mar 2025 11:55:52 +0200, Mikko wrote: >>>>>>>>>>>> >>>>>>>>>>>>> On 2025-03-15 04:00:52 +0000, Mr Flibble said: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi! >>>>>>>>>>>>>> >>>>>>>>>>>>>> neos universal compiler (that can compile any programming >>>>>>>>>>>>>> language) >>>>>>>>>>>>>> is successfully running the tokenization stage tokenizing a >>>>>>>>>>>>>> program written in the neos reference language. #cpp #coding >>>>>>>>>>>>>> #compiler #compsci #gamedev >>>>>>>>>>>>>> >>>>>>>>>>>>>> /Flibble >>>>>>>>>>>>> >>>>>>>>>>>>> Can it tokenize FORTRAN 60 or FORTRAN IV ? >>>>>>>>>>>> >>>>>>>>>>>> ANY programming language. >>>>>>>>>>>> >>>>>>>>>>>> /Flibble >>>>>>>>>>> >>>>>>>>>>> How is neos configured to tokenize FORTRAN 60 ? >>>>>>>>>> >>>>>>>>>> The same way you would configure it for any other programming >>>>>>>>>> language. >>>>>>>>> >>>>>>>>> If it is configured the same for each programming language then >>>>>>>>> how does it know how to tokenize? >>>>>>>> >>>>>>>> You configure it by providing a language specific neosBNF schema >>>>>>>> (grammar) >>>>>>>> file (an input to the compilalation process). >>>>>>> >>>>>>> Is there a neosBNF schema that describes the tokens of FORtRAN 66 >>>>>>> or Algol 60? >>>>>> >>>>>> Not yet. >>>>> >>>>> The definition of string literal of Algol 60 would be a good example >>>>> of something that cannot be defined with a regular expression and is >>>>> therefore impossible or at least complicated with an ordinary >>>>> tokenizer. >>>> >>>> neos does not use regular expressions and the neos grammar is context >>>> sensitive (i.e. not context free). >>> >>> A context free grammar should be enough for tokenizing strings of Algol >>> 60. >>> >>> Tokenizing statements of FORTRAN 66 is a harder problem. >> >> Some test cases for a FORTRAN IV tokenizer: >> >> REALITY IS, AS I MAY LOGICALLY SAY, REAL LOGICAL = WHAT I SAY >> >> Note that these lines begin with 8 spaces. >> >> Tokens on the first line: >> keyword REAL identifier ITYIS comma identifier ASIMAY end of statement >> >> Tokens on the second line: >> keyword LOGICAL identifier LYSAY comma identifier REAL end of statement >> >> Tokens on the third line: >> identifier LOGICAL assignment symbol identifier WHAT I SAY >> >> Parser needs to know whether an instance of REAL or LOGICAL is an >> identifier or keyword. >> >> I don't understand how neos can be configred to tokenize the above test >> lines and other FORTRAN IV statements. > > If a native FORTRAN IV compiler can parse it then neos can parse it as > long as it is somehow expressable in the neos attribute grammar. But that was the question: Can it be parsed in a neos expressible grammar? Note that those early Fortran grammars were 1) not finite state, 2) not context free, and 3) inherently ambiguous.It was possible, for example, to write a "format" and an "assignment" statement that were character to character identical. As an aside, a friend who wrote an early Fortran compiler that compiled such a chimera so that it would do an assignment if executed and could be referenced as a format from an IO statement. -- Jeff Barnett