﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-λ-calculus-随笔分类-Vczh Lazy Script</title><link>http://www.cppblog.com/vczh/category/6824.html</link><description>Vczh Free Script 2.0 New Features Developing</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 12:53:34 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 12:53:34 GMT</pubDate><ttl>60</ttl><item><title>关于类型推导的设想</title><link>http://www.cppblog.com/vczh/archive/2008/04/28/48294.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Sun, 27 Apr 2008 18:16:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/04/28/48294.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/48294.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/04/28/48294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/48294.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/48294.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     这几天一直在忙学校的比赛，到了今天终于有空了。<br><br>    Lazy Script的语法实在是很复杂，因此不得不在进行第一步的名字检查之后把原本的语言转换为内部使用的一种元语言。这种元语言设计的原则是尽量简单。譬如列表构造和do-end语句就需要被转换掉。进行了转换以后，就需要对元语言进行一个类型方程组的建立。这一步暂时还没有建模好，而且实际工作需不需要真的构造出一组方程组还不知道。目前还比较没有头绪的就是如何对模板函数的类型方程建模。<br><br>    举个例子，譬如我们对上一篇文章中提到的代码进行类型方程组的构造：&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/04/28/48294.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/48294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-04-28 02:16 <a href="http://www.cppblog.com/vczh/archive/2008/04/28/48294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Lazy Script 语法分析器完成</title><link>http://www.cppblog.com/vczh/archive/2008/04/22/47841.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Tue, 22 Apr 2008 12:03:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/04/22/47841.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/47841.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/04/22/47841.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/47841.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/47841.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     花了两天的时间终于完成了Vczh Lazy Script的语法分析工作。语法分析是编译的第一步，旨在把输入的字符串（代码）分析称跟代码结构一致的语法树，以便后续工作。<br><br>    藉着去年开发的Syngram工具包，这两天过得还算轻松，仅仅对语言做了一份配置，不过这份配置也花掉了1200多行代码。语法分析其余的部分是数据结构。目前的数据结构仅仅用于再现语言的结构，而没有附加任何的数据。接下来的工作是检查所有的identifier，看看有没有哪些identifier是使用错误的。一般来说都是在左值使用函数、类构造标签参数不全、转移运算符指向的函数并没有声明成函数等等比较基本的东西。但是后续的工作就相当地麻烦了。<br><br>    作为一门lazy+pure的函数范式程序语言，我模仿了Haskell的大部分语法，加上自己的一点点修改（因为Haskell的语法实在是太诡异了），但是主要功能是没有变化的。等上面所说的identifier完成以后，我就要开始写Lazy的类型推导程序了。类型推导程序用于计算出代码中省略的类型声明，相当于把整份代码转换成类型方程然后求解&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/04/22/47841.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/47841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-04-22 20:03 <a href="http://www.cppblog.com/vczh/archive/2008/04/22/47841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Lazy Script 上下文无关文法</title><link>http://www.cppblog.com/vczh/archive/2008/04/21/47720.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Mon, 21 Apr 2008 04:50:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/04/21/47720.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/47720.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/04/21/47720.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/47720.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/47720.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ExpCmList  -> Expression ["," ExpList]<br>ArrCmList  -> [LeftValue "<-"] Expression ["," ArrList]<br>CaseList   -> LeftValue ":" Expression ";" [CaseList]<br>DoList     -> ([LeftValue "="]Expression | LeftValue "::" TypeDes ) ";" [DoList]<br>WhereList  -> (FuncHead | FuncBody) ";" [WhereList]<br><br>Exp0       -> <constant><br>Exp0       -> FuncName<br>Exp0       -> "(" [ExpCmList] ")"<br>Exp0       -> "[" [ExpCmList] "]"<br>Exp0       -> "[" Expression "|" ArrCmList "]"<br>Exp0      &nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/04/21/47720.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/47720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-04-21 12:50 <a href="http://www.cppblog.com/vczh/archive/2008/04/21/47720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Vczh Lazy Script 语法描述</title><link>http://www.cppblog.com/vczh/archive/2008/04/21/47719.html</link><dc:creator>陈梓瀚(vczh)</dc:creator><author>陈梓瀚(vczh)</author><pubDate>Mon, 21 Apr 2008 04:49:00 GMT</pubDate><guid>http://www.cppblog.com/vczh/archive/2008/04/21/47719.html</guid><wfw:comment>http://www.cppblog.com/vczh/comments/47719.html</wfw:comment><comments>http://www.cppblog.com/vczh/archive/2008/04/21/47719.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/vczh/comments/commentRss/47719.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/vczh/services/trackbacks/47719.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;自从做好了Vczh Free Script之后，对于&#955;-calculus的热情还在，对于未实现lazy evaluation也耿耿于怀。因此又设计了一门类似Haskell的语言来（在语法上模仿了不少），本意是既能享受到lazy evaluation所带来的优美的表现形式，又能将这门语言当脚本而不是单纯的程序语言使用。不过将来会演变成什么就暂...&nbsp;&nbsp;<a href='http://www.cppblog.com/vczh/archive/2008/04/21/47719.html'>阅读全文</a><img src ="http://www.cppblog.com/vczh/aggbug/47719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/vczh/" target="_blank">陈梓瀚(vczh)</a> 2008-04-21 12:49 <a href="http://www.cppblog.com/vczh/archive/2008/04/21/47719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>