Tuesday, May 25, 2021

Return to attributed Grammars

 


This is likely my "joy of living" as an elder away from youth indiscretions who have accepted a new stage in life but do not admit to limitations of unbeliever in shastra! Why would a 66-year-old person return to his youth roots?

1 He wishes to make, expected anonymous, significant in his terms, to vitaDAO, the magic company that will research in only central meaningful subject in his existence - extension of healthy life , to be a NFT IMM smart DAO, original development to become the guiding light of next human paradigm, which will value contributions from the only motive other than money; self application of the research. There is a joy similar to discovery of religion by still agnostic me. It is being done on blockchain with artifacts to make even origination DAO provably corruption free DAO, uses essential attributed grammars and can use the meta-compiler like Yacc to develop corruption-free.


2 He has new ideas to try, extending grammars in context-sensitive ways without introducing null production which make the result undecidable.


3 benefit from the magic insight of context sensitivity by still becoming decidable when null productions are introduced by making null derivation only one non-terminal and at the end only! This gives decidable deterministic translations, essential to upgrading crispr cas9 upgrades to DNA with proven limit of DNA sub string replaced.


4 Planet does not have tools to instantiate and use meta-compilers for building GUI, context-sensitive attributed grammars with inherited and synthesized attributes don't exist, nor do event based languages for concurrent programming like internals of UNIX, or methods to record and design genetic manipulations. Provides me with an achievable target for the rest of my life.


5 I am an engineer, not a scientist and have the luxury of a design in my mind. If little is known about a subject, paradigm shift happens, A sub paradigm on the other hand imposes a new hitherto unknown method for solution of a sub problem only, talked down by the supposed wise.


Stephen C. Johnson was my boss who rarely but incisively explained the story of Yacc, I consider it as important to spread of UNIX and textbook example of conversion of concurrent programming to linear form that all languages apply. Concurrency is easy to see, there is limited conflict between concurrent parsing of whole program, bottom-up in concurrent fashion.


If one represents the currently applicable context free production with a dot to mark the separation by the Parser seen on the left and still to be seen on the right, called an item, then the state of the compiler is a list of items. The next parser action depends on the bottom-most item. Depending on the look ahead which is the first of the non-terminal in the RHS, something that can be precomputed. The parser action can be shifted for some possibilities or reduce when a complete RHS has been seen. If more than one action then a conflict - shift/shift is just shift, reduce/reduce is bad grammar, shift/reduce can be done by semantics in many cases. Synthesized attributes are best considered as results, inherited as arguments or common position dependent values on the stack like merging of fields in language inheritance.


The result is incorporation of semantics in grammar itself without getting the full power of attributes but sufficient to solve every real problem. The metacompiler emits errors on shift-reduce conflicts, but these can be solved in actions. By adding conflict productions to the item being scanned, these errors will not show in the result.


index ::= expr {...} {+type = $expr..type} #- stack has 2 elements $expr and $type.

No comments:

Post a Comment