资讯详情

机器编程:软件开发领域新动向

更新时间:2020-12-23 20:07来源:TUZI

随着人工智能的蓬勃发展,机器的智能化程度越来越高,在很多领域,基于大量样本数据的自我学习,计算机在某一功能领域能够实现自我完善,通过持续的大数据量学习,执行功能的能力会得到持续提升,究其本质,实质上是一些重复性工作的持续优化,机器学习本身就是学习这些重复性工作的数据(即样本数据),然后优化工作的过程。

在软件开发领域,如何通过引入人工智能提升开发效率呢?首先思考机器学习的方式,由于编程工作本身,没有可行的方案提供一致性的编程“数据样本”,且不同的程序员实现的算法和过程有天壤之别,因此通过机器学习的方式让计算机自动编程将变得不可实现。

机器编程:软件开发领域新动向

基于深度抽象的人工智能,让计算机理解设计模型并转化为代码,这个过程被称为机器编程。机器编程是表征软件开发中从模型向高级语言代码转换的过程,全部交由计算机完成,此构想的另一背景是客户化项目需要人工编码的工作很多,尤其较为复杂的大型项目,对项目进度、项目管理形成挑战,且要求开发出的项目能够不依赖于开发平台而独立运行,同时项目代码交付客户后,客户的编程人员能够使用通用的高级编程语言例如Java,C#等进行后续独立升级开发。基于此背景与构想,2014年安鸣软件创始人赵晨创立了上海安鸣软件科技有限公司,将此概念和构想付诸实验与实践,经过六年研发,推出了ACB机器编程平台,并发表机器编程论文并被知网收录。系统将领域模型、交互模型、视图模型、接口模型、流程模型、权限模型均进行了完整实现,项目能够通过可视化模型完整生成基于高级编程语言的程序代码,该系统开发的平台级系统已应用于广告行业的DSP、DMP、SSP、CRM、SEM等系统。

该系统机器编程技术的核心要素是机器理解模型并转变为代码,而非由人类程序员理解模型,并进行实现的过程,因此软件系统的模型化就是机器编程的输入,可执行代码是机器编程的输出。软件系统就是模拟真实世界,真实世界的模拟实质上就是不同对象的交互,从面向对象角度,可以从不同层级对实体对象进行建模,因此,系统从几个分层的模型角度对软件系统进行全面的建模,系统的核心工作就是让计算机理解这些模型并产生源代码进行编程工作。

ACB与Outsystems,iVX,Salesforce,Mendix,Appian,Joget等低代码快速开发平台和技术的目的类似,其目的都是加速软件开发,减短软件开发过程中的迭代周期,提高开发效率和质量,降低开发成本,能够将模型直接转化为可运行应用程序。不同之处在于:机器编程将模型转化为高级语言代码,其转换从编程结果和代码角度审视,应和人工编码并无不同,通过编译这些高级语言代码,进而执行软件系统。Outsystems,iVX,Salesforce等低代码快速开发平台所采用技术开发完成之后的系统仅能运行在平台自己架构之上,不是以普通的高级语言代码方式作为软件开发结果交付客户,虽然目的同样能够加速软件开发,但不是以模仿人类编程为目的,机器编程则是模仿人类编程过程,其产出高级语言代码作为结果是其主要特征,产出结果上看和人工编程并无不同,但编程效率却大大提高。

相信在不久的将来,机器编程这种以深度抽象为基础的人工智能技术,在智能软件吞噬世界的信息化数字浪潮中,在技术层面发挥其高效率智能化的特征加速人类信息化数字化进程。

留言咨询
姓名
姓名不能为空
手机
请输入正确格式的手机号
留言
<<致富汇加盟网服务条款>>
相关资讯
推荐项目
我要留言
我要留言
姓名
姓名不能为空
手机
请输入正确格式的手机号
留言
<<致富汇加盟网服务条款>>
填写联系电话
请输入正确的电话号码

(招商经理即将联系您,请留意!)