《“NGNc”在兼容性、性能、系统复杂度间权衡》

原创 2004年06月24日 13:36:00

http://www.ngnc.net/ngnc_how_to_make_app.htm

《“NGNc”在兼容性、性能、系统复杂度间权衡》

袁德俊(

2004624日)

(本文阅读前,如果您阅读了以下文章,将更容易理解本文)

NGNc,“中断”返回的结果》

《“NGNide”简介》

前言:

NGNc”是一个“c”语法规则的脚本语言,配备自己的虚拟机和调试环境。它不追求语法的精妙如:C++C#。而更推崇c语法的干练和无所不能,就如同很多程序高手讨论如何用c语言实现如COM接口和虚函数一样。

“语言”为何物?

“语言”(计算机语言)是满足人同机器交流的工具,不同版本,不同层次的语言又各具特点,满足着人们各样的需要。“

NGNc”的诞生就是为了满足:降低系统复杂度、提高兼容性、同时可以兼具性能的需求。

目前公认的对语言的分层为:(从低到高)

汇编语言:(机器语言),完全以机器可以理解的指令,完成程序员期望的功能;性能最高,但兼容性很差,复杂的系统是不会使用它来作为主要开发语言的。

C

语言:是性能和兼容性最好的语言,尤其Ansi C的标准化为很多系统级的应用的首选择Java和目前很多的脚本语言都试图以标准c为桥梁在兼容性上找到最好的解决,“NGNc”也一样。而且c语言的灵活性,更是程序高手愿意追逐的。

C++

C#:在面向对象盛行的时代,因为追随者众多,它们当然就站在了高峰。更因为它承载者先进的编程思想,可以让系统复杂度大大提升,很多杰作都无不出自它们。我本人也是个C++的支持者,未进入C#完全是自己“守旧”的思想在作祟。

其他高级语言:

PascalDelphiBasic,等等大同小异;

脚本语言:

SQL等语言,是基于特定应用专门开发的,它可以快速地扩充应用系统规模,将特定的应用系统引擎封装其中,降低了系统复杂度,同时兼具兼容性等优点。但脚本语言多为解释型,为了提高系统性能SQL可以在服务端保存编译后的中间代码。

Java

特例:它同基于应用的脚本语言的初衷不同,目前成为了一种寻求兼容性最佳的解决方案。

如何使用

NGNc构建您的应用?

NGNc”是脚本语言,它就具备“兼容性”,就如同Java承诺所有Java开发者保证每个开发者的应用,可以在支持Java的设备上顺畅运行一样。

NGNc”通过函数与项目的其他部分交流协作。只所以用c语言规范,和函数,是为了减少沟通的复杂性。因为我坚信,所有学习过编程的人都知道c为何物,而且计算机语言的重要概念“函数”无处不在。NGNc的函数接口,可以让任何语言编译的模块自如地调用NGNc脚本函数(NGNcscallScript Call),也可以通过脚本自如地调用任何语言编译的模块中的函数(NGNcccallC Call)。

1

、“NGNc”构建应用的起点和其他应用无异,利用NGNc提供的函数库,编辑您的代码,是从main开始,还是winmain开始都由您定,同Java语言一样,可以在NGNc提供的标准库基础上,使用NGNc脚本开发完整的应用。

2

、“引擎”封装。如果NGNc只能单独使用无法扩充,它只能是个c语言教学工具。NGNc的开发初衷是将高性能的开发成果(传统语言开发,如C++)以函数库插件的形式提供给NGNc,由NGNc扮演“脚本”角色,同时,可以无限扩充应用领域。

3

、“兼容性”与“性能”的权衡:如同汇编和高级语言在“兼容”和“性能”间权衡一样。NGNc同样需要,因为传统语言的编译目标是机器语言,而NGNc的编译目标是虚拟机代码,为“兼容性”付出的代价就是“性能”损失。NGNc的函数机制可以让开发者在scallccall之间自如选择,仅仅通过配置不同的函数库即可。而无需调整任何脚本源码甚至编译后的虚拟机代码。

4

、汇编、高级语言、NGNc相互权衡的应用开发模式:汇编、高级语言同NGNc的关系是一致的。只所以引入,是因为NGNc的内核也是高级语言和汇编的作品,汇编能优化其他高级语言开发的应用,同样可以优化NGNcNGNc是开放性的脚本语言平台,它将自身的几乎所有可以优化的部分都开放出来,可以替换高级语言编译的模块,也可以用汇编编译。甚至NGNc将整个脚本语言的实现过程中的每个模块都开放,如果用户有兴趣可以编制一个全新语法规则的脚本语言,或对NGNc本身扩充。

这就是:“

NGNc”为您提供的另一个选择,在兼容性、性能、系统复杂度间权衡。

js轮播广告,CSS兼容所有浏览器,无Bug

Note:代码中黑色加粗的部分要特别注意 脚本文件:起名叫flash.js script type="text/javascript"> // -- (function(){ i...
  • huangqiaoling
  • huangqiaoling
  • 2012年04月02日 22:47
  • 3769

uvm_config_db性能权衡

根据mentor的推荐,尽量少用uvm_config_db,因为uvm_config_db是一个数据库,使用正则表达式匹配所有结果,如果数据库过大会影响验证平台性能。但是同时也提到性能与方法学乃至OO...
  • seabeam
  • seabeam
  • 2015年01月22日 10:09
  • 1096

map的遍历性能测试

java中遍历通过不同的元素遍历map的方式有3种:1.通过keySet遍历;2.通过entrySet遍历;3.获取values遍历value。通过不同的方式遍历又分为foreach和iterator...
  • onlyyjco
  • onlyyjco
  • 2016年09月18日 13:38
  • 511

偏差、方差的权衡(trade-off)

偏差(bias)和方差(variance)是统计学的概念,刚进公司的时候,看到每个人的嘴里随时蹦出这两个词,觉得很可怕。首先得明确的,方差是多个模型间的比较,而非对一个模型而言的,对于单独的一个模型,...
  • z1102252970
  • z1102252970
  • 2014年12月25日 18:44
  • 1605

算法设计与分析-时间和空间的权衡

引入问题: 考虑一个计算函数值的问题:   你可以完全不用任何计算方法,先把函数值计算好(例如计算三角函数的值的那张表),把这些预先就计算好了的值存储于计算机中,当你需要这个函数值时,直 接去取...
  • mengzhejin
  • mengzhejin
  • 2014年07月16日 13:26
  • 1766

怎么做手游性能测试?

一、         什么是手游性能测试 性能(performance):是系统实现其功能的能力。例如,响应时间、吞吐能力、事务处理数。 性能测试,是指在特定负载情况下,确定系统的响应速度和稳定性的表...
  • wetest_tencent
  • wetest_tencent
  • 2015年08月12日 20:04
  • 1452

《NGNc商务合作》

《NGNc商务合作》NGNc开发者网络(NGNc Developer Network)是由一群有朝气和执拙性格的软件开发人员组成的开发社区。www.NGNc.net是它的网址,您可以通过浏览该网站对我...
  • yuandj
  • yuandj
  • 2004年12月04日 04:02
  • 1168

软件复杂度概述

http://www.51testing.com/?70557/viewspace-8739.html  在硬件的可靠性设计中,有一条基本原则“简单就是可靠”。这个原则同样也适合软件,与功能的增多或增...
  • hertz2007
  • hertz2007
  • 2010年03月10日 23:19
  • 1751

软件兼容性与软件兼容性测试

 软件兼容性与软件兼容性测试(1)什么是软件兼容性很多东西都可以和平共处,巧克力和花生就是一个很好的例子,如果你喜欢吃花生巧克力糖的话。但是,我们也知道水和油就不相容。在我们用心创建一个复杂的大 型应...
  • besttaling
  • besttaling
  • 2009年10月28日 12:26
  • 8164

百度工程师讲PHP函数的实现原理及性能分析(三)

常用php函数实现及介绍 count count是我们经常用到的一个函数,其功能是返回一个数组的长度。 count这个函数,其复杂度是多少呢? 一种常见的说法是count函数会遍历整个数组然...
  • daiyan_csdn
  • daiyan_csdn
  • 2016年07月21日 20:27
  • 93
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《“NGNc”在兼容性、性能、系统复杂度间权衡》
举报原因:
原因补充:

(最多只允许输入30个字)