2022年5月21日 星期六

VIRT interpreter TSymbolTable ast TREE

Language - 演算法筆記
https://web.ntnu.edu.tw/~algo/
https://web.ntnu.edu.tw/~algo/Language.html

https://sourcemaking.com/design_patterns/interpreter/delphi

https://docs.python.org/zh-tw/3.7/library/language.html
https://docs.python.org/3.7/library/parser.html
Python 语言服务
Python 提供了许多模块来帮助使用 Python 语言。 这些模块支持标记化、解析、语法分析、字节码反汇编以及各种其他工具。

 JavaCC Interpreter (AST to Symbol Table) 

https://ruslanspivak.com/lsbasi-part1/

AST interpreter Backus–Naur Form syntax tree

Introduction to AST manipulation in ROSE
Abstract Syntax Trees
https://ix.cs.uoregon.edu/~norris/pat/index.cgi?n=Main.ROSEIntro

Presentation on theme: "Programming Languages 2nd edition Tucker and Noonan"— Presentation transcript:
https://slideplayer.com/slide/5039873/

https://staff.csie.ncu.edu.tw/chia/Course/Compiler/lexparse2.html
     Catalog of Compiler Construction Tools
Lexer and Parser Generators Compiler Construction Kits

https://www.sigmdel.ca/michel/program/delphi/parser/parser1_en.html
Part 1 of Parsing and Evaluating Mathematical Expressions
   building parsers  using Pascal or Delphi JEDI Code Library (JCL)’s unit JclExprEval.pas, Renate Schaaf’s TExpress TParser Renate Schaaf, Alin Flaider and Stefan Hoffmeister or symbolic.pas by Marco van de Voort.

parsing code scanner interpreter   sequence  terms separated

Behavioral.State.Pattern (Delphi Sample) Intent      Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.     An object-oriented state machine     wrapper + polymorphic wrappee + collaboration

character table parsing integer digit number  Integer  floating-point types  Data Types
https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node189.html

使用巴科斯範式(BNF/EBNF)定義語言 https://hackmd.io/@ShenTengTu/HJzCM3aDr

The Asf+Sdf Meta-Environment: A Component-Based Language Development Environment
https://www.sciencedirect.com/science/article/pii/S1571066104809174?via%3Dihub
https://eelcovisser.org/research/#ASF+SDF
https://www2.cs.sfu.ca/~cameron/Teaching/384/99-3/regexp-plg.html
https://github.com/cheminfo/sdf-parser

Backus Naur Form Regex BNF Grammar  Regular Expressions 

https://medium.com/@chetcorcos/introduction-to-parsers-644d1b5d7f3d

https://github.com/eatkins/tree-sitter-ebnf-generator

Concret Syntax Tree (CST)  Abstract Syntax Tree (AST)  CST exact parsed tree representation
https://en.wikipedia.org/wiki/Context-free_grammar
https://pyfound.blogspot.com/2020/04/replacing-cpythons-parser-python.html

tree sitter algorithm  Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited.
https://tree-sitter.github.io/tree-sitter/
https://rustrepo.com/repo/tree-sitter-tree-sitter
https://archive.casouri.cat/note/2021/emacs-tree-sitter/index.html
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00410.html


https://docs.revenera.com/fne/2021_09/adminguide/content/helplibrary/Model_Definition_Grammar_and_Syntax_EBNF.htm

https://en.wikipedia.org/wiki/Category:Parsing_algorithms
Parsing algorithms
Top-down        LL Recursive descent https://en.wikipedia.org/wiki/LL_parser
        Tail recursive Pratt parser
Bottom-up   
    Precedence
        Simple Operator
            Shunting-yard Bounded-context LR https://en.wikipedia.org/wiki/LR_parser
        Simple Look-ahead Canonical Generalized CYK Recursive ascent Shift-reduce
Mixed, other   
    Combinator Chart Earley https://en.wikipedia.org/wiki/Earley_parser
Related topics   
    PEG Definite clause grammar Deterministic parsing Dynamic programming Memoization Parser generator
        LALR Parse tree AST Scannerless parsing History of compiler construction Comparison of parser generators

https://en.wikipedia.org/wiki/GLR_parser
https://en.wikipedia.org/wiki/Category:Parsing_algorithms
https://en.wikipedia.org/wiki/LALR_parser
https://en.wikipedia.org/wiki/Earley_parser

Context-Free parsers  GLL Syntax LALR  Left corner parser  LL  LR GLR

深入淺出教你寫編譯器(Compiler)  https://jaceju.net/simple-compiler/

a compiler is a program that can read a program in one language - the source language - and translate it into an equivalent program in another language - the target language
Finite-state machine Scanner Semantic analysis
https://hackmd.io/@ComputerScienceNote/BJLyuNi6D