自动源代码生成制造技术

技术编号:12956298 阅读:53 留言:0更新日期:2016-03-02 15:38
从包括变量代码元素和方法的简档中自动生成源代码语句。简档从具有已标识的变量代码元素的现有代码基构建,已标识的变量代码元素在被用于源代码语句的不同版本中时不同。开发者可定义变量代码元素的值,其接着被简档中的方法用于自动生成对应的源代码语句。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】自动源代码生成源代码的生成是复杂且耗时的过程。通常,开发者以编程语言来创建源代码,并且于在操作环境中执行该源代码之前对它进行测试。开发者可能耗费大量时间来在各种条件下测试源代码,以确保源代码如预期那样操作。集成开发环境(IDE)通常被用于帮助开发者以不同编程语言来开发源代码。IDE向编程者提供包括工具(诸如编辑器、调试器、编译器、解释器)的框架,该框架使得开发者能够以多种编程语言开发、调试、并测试源代码。然而,IDE提供的能力是更频繁地为开发者所用的那些能力,诸如编辑、调试、和测试。通常,IDE不提供用于以简易的方式使用用户输入来定制现有源代码的能力。
技术实现思路
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。当源代码的上下文略微不同于现有代码基(code base)时,可从源代码库(codelibrary)中自动生成源代码。在每一上下文中,源代码的特定元素可变。这些元素可被建模为变量代码元素,其在被用于不同上下文中时可呈现不同的值。用户可为变量代码元素定义值,且系统使用这些值来自动生成源代码语句的不同集合。以此方式,开发者可减少写、调试、以及测试新源代码的开销。简档与特定上下文相关联,并包含用于为该上下文生成输出源代码(即,源代码语句)的可编程指令。简档可包括一个或多个变量代码元素和方法。变量代码元素代表与源代码语句相关联的编程语言的语法的元素,其在软件应用的不同版本中重复地改变。变量代码元素可代表变量、对象类型、变量名、以及输出源代码中使用的编程语言的语法中的其它构造。用户可输入变量代码元素的值,其接着被简档的方法用于生成输出源代码。通过阅读以下详细描述及查看相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。附图简沐图1是示出用于自动源代码生成的示例性系统的框图。图2是示出用于自动生成源代码的方法的第一实施例的框图。图3是用于示出用于自动生成源代码的方法的第一实施例的第一示例性简档。图4是描绘用于自动生成源代码的方法的第一实施例的示例性解说。图5是示出用于自动生成源代码的方法的第二实施例的框图。图6是用于示出用于自动生成源代码的方法的第二实施例的第二示例性简档。图7是描绘用于自动生成源代码的方法的第二实施例的示例性解说。图8是示出用于示例操作环境中的示例性计算设备的框图。详细描沐各实施例涉及用于从现有代码基自动生成源代码的技术。现有代码基在被用于不同上下文时可略微不同。现有代码基被分析以确定在用于不同上下文时保持静态的源代码语句以及可变化的源代码语句。变化的源代码语句可被建模为变量代码元素。与变量代码元素相关联的源代码语句可使用现有代码基中的源代码语句的知识来自动生成。上下文定义与输出源代码相关联的编程环境。该上下文可以与以下相关联:特定编程语言、代码库、代码向导、最佳实践、输出的格式偏好、或可被调用、执行、或以其他方式被用于生成输出的其它程序或应用。对于每个上下文,包括一个或多个变量代码元素和一个或多个方法的简档被提供。变量代码元素代表与源代码语句相关联的编程语言的语法中的元素,其在软件应用的不同版本中重复改变。用户定义与上下文相关联的变量代码元素,而简档的方法生成对应的源代码语句。以此方式,开发者(例如,用户、终端用户、编程者等)仅需输入变量代码元素的值,而不是重写用于不同上下文的源代码。例如,在多个实施例中,先前存在的代码基可以是代表用于在不同条件下测试软件应用的测试用例的源代码库。每个测试用例的源代码可略微变化。变量代码元素的不同值可通过自动生成针对附加测试用例的对应源代码语句的系统由开发者来指定,而不是手动为附加测试用例生成源代码。注意力现转向对实现此技术的实施例的示例性系统的讨论。转到图1,示出了具有源代码库102、一个或多个简档104和代码生成管理器模块120的系统100。每个简档104可包括一个或多个变量代码元素108、一个或多个方法110、以及一个或多个规则112。代码生成管理器模块120可包括正则表达式(或regex)引擎122的正则表达式、语句引擎124、以及输出引擎126。代码生成管理器模块120接收引导输出源代码132的生成的开发者输入 130ο在系统100的初始阶段,源代码库102被分析以标识可在不同上下文中以不同值重复的代码元素。这些代码元素被参数化或建模,使得它们在被用于不同上下文时可以由不同源代码语句来表示。这个分析可从现有代码基(诸如现有源代码库102或其它输入源)开始,并确定现有代码基中在不同上下文中不同的那些部分以及现有代码基中保持静态的那些部分。在某些实施例中,开发者可利用不同于源代码库的其它输入源,诸如通用公共应用编程接口(API)或构建到编程语言中的源代码。简档104与特定上下文相关联,并包含用于为该上下文生成输出源代码(即,源代码语句)的可编程指令。简档104可包括表示变化的源代码的元素的一个或多个变量代码元素108。变量代码元素108可代表变量、对象类型、变量名、以及输出源代码132中使用的编程语言的语法中的其它构造。用户可输入变量代码元素108的值,其接着被方法110用于生成输出源代码132。在某些实施例中,用户接口可被用于获取用于变量代码元素108的值。在其它实施例中,简档104可包括自然语言接口,该自然语言接口接受标识用于变量代码元素108的值的用户输入。该自然语言接口可通过一个或多个规则112来实现。该规则允许开发者以能够更容易被开发者理解的方式来输入值。此外,规则向开发者提供关于代码被构建的方式的反馈。每个规则112可包括一个或多个正则表达式114和一个或多个逻辑语句116。规则使用一个或多个正则表达式114来匹配用户的自然语言文本或文本串,以标识变量代码元素以及它们的用户定义的值。变量代码元素108接着被应用于逻辑语句116中,来调用将逻辑语句116变换成输出源代码132的方法110。代码生成管理器模块120利用简档104和开发者输入130来生成输出源代码132。正则表达式引擎122解析开发者输入的自然语言文本以寻找最佳匹配该文本串的规则。该规则的正则表达式被用于提取文本串中的变量代码元素。语句引擎124将变量代码元素的值结合到逻辑语句中,其接着被用于调用合适的方法110来以开发者指定的编程语言生成输出源代码。输出源代码接着被格式化并被提供给开发者。在一个或多个实施例中,代码生成管理器模块120、正则表达式引擎122、语句引擎124、输出引擎126、以及方法110可以是计算机程序指令序列,这些计算机程序指令在被处理器执行时致使该处理器根据规定的任务来执行方法和/或操作。代码生成管理器模块120、正则表达式引擎122、语句引擎124、输出引擎126、以及方法110可被实现为程序代码、程序、过程、模块、代码段、程序栈、中间件、固件、方法、例程等。可执行的计算机程序指令可根据用于指示计算机执行特定功能的预定义的计算机语言、方式或句法来实现。这些指令可以使用任何合适的高级、低级、面向对象、可视、编译、和/或解释编本文档来自技高网...

【技术保护点】
一种计算机实现的方法,所述方法包括:配置简档以自动生成一个或多个源代码语句,所述简档包括一个或多个变量代码元素以及一个或多个方法,变量代码元素代表编程语言的语法中的元素,一个或多个方法中的各个方法包括使用用户定义的变量代码元素的值来生成源代码语句的可编程指令,所述源代码语句根据软件应用的现有代码基来仿造;获取与所述简档相关联的所述变量代码元素的用户定义的值;以及应用与所述简档相关联的方法以使用所述用户定义的值来生成所述源代码语句。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:D·万
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1