From Code to Knowledge to Software
From Code to Knowledge to Software
批准号:
RGPIN-2018-05812
负责人:
Carette, Jacques
金额:
$2.04万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2019
资助国家:
加拿大
项目状态:
已结题
起止时间:
2019-01-01 至 2020-12-31
中文摘要
在编程语言中,我们有一些很好理解的技术:解释,编译,部分求值,代码生成等。 如果我们进一步把软件理解为形成家族,那么共性和可变性就可以被编码在生成器中。当正确完成时,生成器不仅突出了可能的设计选择,还提供了源知识和最终软件工件之间的可追溯性-例如交叉引用每个计算量及其在设计/需求文档中的推导。通过传统方法进行可追溯性是繁重的,并且在事后禁止这样做。受监管的行业,如核,医疗,航空航天,要求可追溯性作为认证过程的一部分。目前,可认证软件的开发方法是文档驱动的,并涉及大量的知识重复。这种重复既昂贵又妨碍可追溯性。**生成式方法已经非常成功地应用于某些领域的代码,如科学计算,用户界面,操作系统和图形。 然而,代码只是组成软件的所有工件的一小部分。因此,我们建议推广的生成,家庭为基础的方法,包括所有的文物。通过设计,这些共享了很多知识:需求规范,设计文档,代码,用户手册,测试等,都应该说同样的事情。该研究的主要长期目标是通过使用生成技术来避免信息重复,从而促进长期生产力的大幅提高。为了实现这一点,我们将开发一系列领域特定语言:1)(需求)文档,2)“通用”面向对象语言,3)设计和实现选择,以及4)算法知识。这不是一个银弹:不是所有的问题域都被足够好地理解,以这种方式捕获。研究将集中在存在大量知识的领域。 更一般地说,问题域及其软件解决方案必须基于良好理解的理论,从需求到设计到代码的转换,以及测试,用户手册等,都必须得到很好的理解,即建立了此类软件的科学和工程。这些领域通常属于科学计算的范畴。拟议的研究将形成软件开发,特别是科学计算的长期生产力增长的基础,并在这些方法中培训20名HQP。我们的方法强调工程软件的具体例子作为我们研究的基础。生产率增长对于在即将到来的“软件危机”(正如《大西洋月刊》最近的文章所称)面前保持领先至关重要。
英文摘要
In programming languages, we have some well understood technologies: interpretation, compilation, partial evaluation, code generation, etc. In fact, for most Domain Specific Languages, these can be automatically generated. If we furthermore understand software as forming families, commonalities and variabilities can be encoded in a generator. When properly done, the generator not only highlights possible design choices, it also provides for traceability between source knowledge and eventual software artifacts -- such as cross-referencing each computed quantity with its derivation in the design/requirements document(s). Traceability is onerous via traditional methods, and prohibitive to do after the fact.******Regulated industries, such as nuclear, medical, aerospace, require traceability as part of the certification process. Current development methods for software which can be certified are document driven, and involve a large amount of knowledge duplication. This duplication is both expensive and hinders traceability.******Generative methods have been very successfully applied to code in certain domains like scientific computation, user interfaces, operating systems and graphics. However, code is only a small part of all artifacts which makes up software.******Thus we propose to generalize the generative, family-based approach to encompass all artifacts. By design, these share a lot of knowledge: requirements specifications, design documents, code, user manuals, tests, etc, all should say the same thing.******The main long term goal of the research is to foster substantial long-term productivity increases by using generative techniques to avoid information duplication. To achieve this, we will develop a sequence of domain specific languages 1) of (requirements) documents, 2) of "generic" object-oriented languages, 3) of design and implementation choices, and 4) of algorithmic knowledge.******This is not a silver bullet: not all problem domains are sufficiently well understood to be captured in this way. The research will focus on domains where a large body of knowledge exists. More generally, the problem domain and its software solution must be based on well-understood theory, where the translation from requirements to design to code, but also tests, user manuals, etc, must all be well understood, i.e. that the science and engineering of such software is established. These domains generally fall under the umbrella of scientific computation.******The proposed research will form the foundations of long-term productivity growth in software development, especially in scientific computation, and train 20 HQP in these methods. Our methodology emphasizes working on specific examples of engineering software as a means of grounding our research. Productivity growth is critical to stay ahead of the coming "software crisis" (as the recent article in The Atlantic calls it).
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
From Code to Knowledge to Software
-
批准号:RGPIN-2018-05812
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$4.08万
-
财政年份:2022
-
负责人:Carette, Jacques
-
依托单位:
From Code to Knowledge to Software
-
批准号:RGPIN-2018-05812
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.04万
-
财政年份:2021
-
负责人:Carette, Jacques
-
依托单位:
From Code to Knowledge to Software
-
批准号:RGPIN-2018-05812
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.04万
-
财政年份:2020
-
负责人:Carette, Jacques
-
依托单位:
From Code to Knowledge to Software
-
批准号:RGPIN-2018-05812
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.04万
-
财政年份:2018
-
负责人:Carette, Jacques
-
依托单位:
Disciplined Meta-Programming
-
批准号:262084-2012
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.6万
-
财政年份:2016
-
负责人:Carette, Jacques
-
依托单位:
Rush in 3D
-
批准号:488542-2015
-
项目类别:Engage Grants Program
-
资助金额:$1.82万
-
财政年份:2015
-
负责人:Carette, Jacques
-
依托单位:
Disciplined Meta-Programming
-
批准号:262084-2012
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.6万
-
财政年份:2015
-
负责人:Carette, Jacques
-
依托单位:
Disciplined Meta-Programming
-
批准号:262084-2012
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.6万
-
财政年份:2014
-
负责人:Carette, Jacques
-
依托单位:
Disciplined Meta-Programming
-
批准号:262084-2012
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.6万
-
财政年份:2013
-
负责人:Carette, Jacques
-
依托单位:
Disciplined Meta-Programming
-
批准号:262084-2012
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.6万
-
财政年份:2012
-
负责人:Carette, Jacques
-
依托单位:
New methods for building computer algebra systems
-
批准号:262084-2007
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.35万
-
财政年份:2011
-
负责人:Carette, Jacques
-
依托单位:
New methods for building computer algebra systems
-
批准号:262084-2007
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.35万
-
财政年份:2010
-
负责人:Carette, Jacques
-
依托单位:
New methods for building computer algebra systems
-
批准号:262084-2007
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.35万
-
财政年份:2009
-
负责人:Carette, Jacques
-
依托单位:
New methods for building computer algebra systems
-
批准号:262084-2007
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.35万
-
财政年份:2008
-
负责人:Carette, Jacques
-
依托单位:
New methods for building computer algebra systems
-
批准号:262084-2007
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.35万
-
财政年份:2007
-
负责人:Carette, Jacques
-
依托单位:
Efficient representation of mathematical concepts in mechanized mathematics systems
-
批准号:262084-2003
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2006
-
负责人:Carette, Jacques
-
依托单位:
Efficient representation of mathematical concepts in mechanized mathematics systems
-
批准号:262084-2003
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2005
-
负责人:Carette, Jacques
-
依托单位:
Efficient representation of mathematical concepts in mechanized mathematics systems
-
批准号:262084-2003
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2004
-
负责人:Carette, Jacques
-
依托单位:
Efficient representation of mathematical concepts in mechanized mathematics systems
-
批准号:262084-2003
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2003
-
负责人:Carette, Jacques
-
依托单位:
海外基金