New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Nuva编程语言 - Wikipedia

Nuva编程语言

维基百科,自由的百科全书

Nuva语言是一种面向对象的动态脚本语言。Nuva对应汉语的女娲一词。女娲中国上古时代的神话传说人物。

目录

[编辑] Nuva语言的设计目的

Nuva语言的设计目的是用于基于模板的代码生成。除了用于代码生成领域外,Nuva语言也能用于开发应用程序,如文本和数据处理、GUI 应用程序等。

[编辑] Nuva语言特点

[编辑] 语法简单灵活

Nuva语言采用类似伪码的语法风格,结构之间可以任意嵌套,关键字和运算符兼容大部分现有的编程语言,非常容易学习。

 <.
   if (a = b && c == d or e <> f)
     ?? foo()
    
     function foo()
       Result = 'foo'
     end function
   end if
 .>

[编辑] 动态的,无类型约束

Nuva语言采用动态类型,使用时不需声明类型,赋值计算时自动进行类型转换,如下:

 <.
   var a = '1'
   a ++
   ?? 'a' ~ a
   // 结果为: a2 
 .>

[编辑] 支持面向对象

Nuva语言支持面向对象的编程方法,支持继承性和多态性。

[编辑] 自动垃圾回收

Nuva语言支持自动垃圾回收,程序员不需显式释放其所创建的对象。

[编辑] 模板专用的语言元素

Nuva语言为模板增加了专用的语言元素,方便模板的编写。

<. | .> | [. | .] 模板标记可以混合配对使用,对于格式要求很严格的场合非常有用。

 [.='Hello, Nuva!'.]
 <.='Hello, Nuva!'.>
 [.='Hello, Nuva!'.>
 <.='Hello, Nuva!'.]

[.之前的所有空白字符原样输出,.]之后的所有空白字符(包括换行)也原样输出;

如果行首到<.之间均为空白字符,则该部分空白字符不输出,否则原样输出;

如果.>到行尾之间均为空白字符,则该部分空白字符和换行不输出,否则也原样输出。

Nuva语言特有的fileassign结构能够非常方便的对输出进行组合、分解,从而方便了模板的编写。

[编辑] Nuva虚拟机特点

[编辑] 内置了正则表达式引擎

Nuva虚拟机内置了正则表达式引擎,能够方便的进行文本处理。

 <.
   var text = System.File.Load('Regex_Test.nuva')
   foreach(str = text.RegexMatchs('\w+', ))
     ?? str
   end foreach
 .>

输出如下的结果:

 var
 text
 System
 File
 Load
 Regex_Test
 nuva
 foreach
 str
 text
 RegexMatches
 w
 str
 end
 foreach

[编辑] 内置了 O/R Mapping 引擎

Nuva虚拟机内置了 O/R Mapping 引擎,可以通过面向对象的方式直接存取数据库架构和数据。

[编辑] 内置了基于 HTML/XML 的界面引擎

Nuva虚拟机内置了基于 HTML/XML 的界面引擎,能够方便的编写 GUI 应用程序,典型的例子就是 Macrobject CodeAuto 代码生成器

[编辑] Nuva语言代码示例

[编辑] Hello, Nuva!

 <.. "Hello, Nuva!" Demo ..>
 <.
 //======================================
 //     Hello, Nuva! (1)
 //======================================
 ?? 'Hello, Nuva!'
 
 /*======================================
        Hello, Nuva! (2)
 ======================================*/
 function HelloNuva()
   ?? "Hello, Nuva!";
 end function
 
 HelloNuva();
 
 /*======================================
        Hello, Nuva! (3)
 ======================================*/
 class Nuva()
   function Hello()
     ?? 'Hello, Nuva!';
   end function
 end class
 
 var n = Nuva();
 n.Hello();
 .>

[编辑] foreach | O/R Mapping

 <.
 function Foreach_Demo()
   // Load Schema from a Xml file
   var schema = System.Data.LoadSchema(
       System.Path.ProjectPath ~ '..\Northwind\Northwind.xobject'
     );
 
   ?? '--------------------'
   ?? 'Tables Order by Name'
   ?? '--------------------'
   foreach(table = schema.Tables.OrderbyName)
     ?? table.Name
   end foreach
 
   ?? '---------------------------------'
   ?? 'Tables Filter by Name.Length < 10'
   ?? '---------------------------------'
   foreach(table = schema.Tables | table.Name.Length < 10)
     ?? table.Name
   end foreach
 end function
 .>

[编辑] file | 生成文件

 <.  
 function File_Demo()
   ?? \r\n ~ '--Read file and Output here--'
   file('codeexamples.nuvaproj') end file
 
   // Read file and write to 'Target', overwrite it if exist
   file('codeexamples.nuvaproj', true)
     Target = 'temp.target'
   end file
   
   ?? \r\n ~ '--Read file dynamically and Output here--'
   file()
     FileName = System.Path.ProjectPath ~ 'output\temp.target'
   end file
   
   // Delete file
   System.File.Delete(System.Path.ProjectPath ~ 'output\temp.target')
 end function
 .>

[编辑] assign | 捕获输出

 <.  
 function Assign_Demo()
   // 'Result' assigned from the output in the assign statement
   assign(Result).]
     Generate Text ... @[.=System.Now.] ...
 <.end assign
 end function
 .>

[编辑] 函数 | 递归调用

 <.
 /*--------------------------------------------------------
        Factorial
 --------------------------------------------------------*/
 function Factorial ( N )
   if (N <= 1)
     Result = 1;
   else
     Result = N * Factorial(N - 1); // Recursion Call
   end if;
 end function;
 .>

[编辑] 类 | 多态性

 <.
 function Class_Demo()
   class ClassA()
     function Do()
       this.DynDo()
     end function
     
     function DynDo()
       ?? 'ClassA'
     end function
   end class
   
   class ClassB = ClassA()
     function DynDo()
       ?? 'ClassB'
     end function
   end class
 
   var c1 = ClassA()
   var c2 = ClassB()
   c1.Do()
   c2.Do()
 end function
 .>

[编辑] 外部链接

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu