分享

[.NET Parser] The Compiler Compiler / Parser / Lex/Yacc

 quasiceo 2014-02-02

[.NET Parser] The Compiler Compiler / Parser / Lex/Yacc

2012/8/14 17:04 | 閱讀數 : 815 我要推薦 | Add Comment | 文章分類 : .NET LINQ, EF, MVC 訂閱

120813 研究 Compiler Compiler 並非是要做編譯器, 只是想從 Parser 中得到一點靈感, 涉入 Compiler 領域就已經太 Over 了!

 

※ 工具
Coco-R    http://www.ssw./coco/
Antlr         http://www./
Irony.Net  http://irony./
NParsec   http://www./haskellwiki/Parsec#Parsec_clones_in_other_languages
Rx Parser http://rxx./wikipage?title=Parsers
PEP          http://www.ling./~scott/#software a top-down dynamic CFG parser (Java)

 

※ 網路爬文
? 装配中的脑袋


※ 網路爬文

[Forum] Learning to Write a Compiler 2011-12-3

◎ Steve Gilham -- Monadic Parsers in C# 2011-1-18

◎ CODE RANT -- Monads in C# 2011-1-9

[Forum] Implementing a Top Down Parser in C# 2011
    ExpressionEvaluatorGrammar

◎ CodeProject Don Kackman -- Dynamically evaluated SQL LINQ queries 2009-11-10 ★★★★★

    var result = source.Query<Person, Tuple<string, double>>(
                       "SELECT Address, Avg(Age) FROM this GROUP BY Address");
    var result2 = source.Query<Person, Family>(
                      "SELECT Address, Avg(Age) AS AverageAge FROM this GROUP BY Address");
    var result3 = source.Query<Person>("SELECT * FROM this ORDER BY age");
    var result4 = source.Query<Person, string>("SELECT DISTINCT address FROM this")

                        Don Kackman -- SqlLinq: Taking LINQ to SQL in the Other Direction 2008-7-27 ★★★★★

    DataSet data = new DataSet();

    MusDbConnection connection = new MusDbConnection("root='C:\\Music';recurse=true;FileExtensions=wma,mp3");
    connection.Open();
    IDataAdapter adapter = new MusDataAdapter("SELECT * FROM media", connection);
    adapter.Fill(data);

    WhereClause ★★★★
    SyntaxRuleFactory ★★★★

    [TODO]
       

◎ [Forum] how to create a parser for search queries 2009-11-7
 
    string sentence = "house in new york priced over $500000 with a swimming pool";
    string[] values = sentence.Split(new []{ " in ", " priced over ", " with a "}, StringSplitOptions.None);

   string type = values[0];     string area = values[1];
   string price = values[2];    string accessories = values[3];

◎ Joel Pobar -- Create a Language Compiler for the .NET Framework 2008-2 ★★★★

    Scanner → Parser → AST  → Code Generator → Assembly

◎ CodeProject Drazen Dotlic -- Format and colorize C# code for the Web(log) 2005-3-14 ★★★★★
    CoCo-R Compiler Compiler
     €D:\MS.NET\CodeProject\Project\Format and colorize CSharp code 


◎ CodeProject Michael Bebenita -- A Simple Compiler for the Common Language Runtime 2003-5-5

◎ James Alan Farrell -- Compiler Basics 1995-8
 

 

[TODO]

第五章- 編譯器(Compiler)
http://www./~ycliaw/Teaching/1002/SP/05_Compiler.pdf

◎ CodeProject Matthew -- Entity mapping language implementation using bsn-goldparser with CodeDom 2012-4-5
http://www./Articles/361208/Entity-mapping-language-implementation-using-bsn-g

◎ CodeProject dave.dolan -- The Whole Shebang: Building Your Own General Purpose Language Interpreter (Who Needs A Reason?!) 2010-11-22
http://www./Articles/129965/The-Whole-Shebang-Building-your-own-general-purpos

◎ CodeProject Martin.Holzherr -- Parsing Expression Grammar Support for C# 3.0 Part 1 - PEG Lib and Parser Generator 2008-9-26
http://65.39.148.52/Articles/29713/Parsing-Expression-Grammar-Support-for-C-3-0-Part

◎ CodeProject Adrian_Moore -- Introduction to GOLD Parser 2005-5-26 ★★★★★
http://www./Articles/10492/Introduction-to-GOLD-Parser

 


? 装配中的脑袋-- 手工解析.NET完全限定类型名称 2009-8-27

? 装配中的脑袋-- 自己动手开发编译器(零)序言 2011-6-6

? 装配中的脑袋-- 自己动手开发编译器(一)编译器的模块化工程 2011-6-7
 

? 装配中的脑袋-- 自己动手开发编译器(二)正则语言和正则表达式
 

? 装配中的脑袋-- 自己动手开发编译器(三)有穷自动机
 

? 装配中的脑袋-- 自己动手开发编译器(四)利用DFA转换表建立扫描器

? 装配中的脑袋-- 自己动手开发编译器(五)miniSharp语言的词法分析器


? 装配中的脑袋-- 自己动手开发编译器特别篇——用词法分析器解决背诵圣经问题
? 装配中的脑袋-- 自己动手开发编译器(六)上下文无关语言和文法
? 装配中的脑袋-- 自己动手开发编译器(七)递归下降的语法分析器
? 装配中的脑袋-- 自己动手开发编译器(八)用Linq编写解析器组合子
? 装配中的脑袋-- 自己动手开发编译器(九)CPS风格的解析器组合子
 

? 装配中的脑袋-- 自己动手开发编译器(十)miniSharp语法分析器
 

? 装配中的脑袋-- 自己动手开发编译器(十一)语义分析
 

? 装配中的脑袋-- 自己动手开发编译器(十二)生成托管代码

 

[TODO]

◎ 當麻許 -- [C#] Lia 研究篇-關於字串分離(Split)  2012-10-6
http://www./junegoat/archive/2012/10/06/lia-c-sharp-split-words.aspx
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多