From Code to Knowledge to Software
从代码到知识到软件
基本信息
- 批准号:RGPIN-2018-05812
- 负责人:
- 金额:$ 4.08万
- 依托单位:
- 依托单位国家:加拿大
- 项目类别:Discovery Grants Program - Individual
- 财政年份:2022
- 资助国家:加拿大
- 起止时间:2022-01-01 至 2023-12-31
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
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).
在编程语言中,我们有一些很容易理解的技术:解释、编译、部分求值、代码生成等。事实上,对于大多数领域特定语言,这些都可以自动生成。如果我们进一步将软件理解为形成家族,那么共性和可变性可以在生成器中编码。如果做得恰当,生成器不仅突出了可能的设计选择,它还提供了源知识和最终软件工件之间的可追溯性——例如在设计/需求文档中交叉引用每个计算数量及其派生。通过传统的方法,追溯性是繁重的,并且在事实发生后禁止这样做。受监管的行业,如核能、医疗、航空航天,要求可追溯性作为认证过程的一部分。当前可认证的软件开发方法是文档驱动的,涉及大量的知识重复。这种复制既昂贵又阻碍了可追溯性。生成方法已经非常成功地应用于某些领域的代码,如科学计算、用户界面、操作系统和图形。然而,代码只是构成软件的所有工件的一小部分。因此,我们建议推广生成的、基于家庭的方法来包含所有工件。从设计上讲,它们共享很多知识:需求说明、设计文档、代码、用户手册、测试等等,所有这些都应该说同样的事情。该研究的主要长期目标是通过使用生成技术来避免信息重复,从而促进实质性的长期生产力提高。为了实现这一点,我们将开发一系列领域特定语言:1)(需求)文档,2)“通用”面向对象语言,3)设计和实现选择,以及4)算法知识。这并不是什么灵丹妙药:并不是所有的问题域都被充分理解,可以用这种方式捕获。研究将集中在存在大量知识的领域。更一般地说,问题域及其软件解决方案必须基于易于理解的理论,其中从需求到设计到代码的转换,以及测试、用户手册等,都必须得到很好的理解,也就是说,建立了此类软件的科学和工程。这些领域通常属于科学计算的范畴。所提出的研究将形成软件开发,特别是科学计算方面长期生产力增长的基础,并在这些方法中训练20名HQP。我们的方法论强调在工程软件的具体例子上工作,作为我们研究的基础。生产力的增长对于在即将到来的“软件危机”(正如《大西洋月刊》最近的一篇文章所称)之前保持领先至关重要。
项目成果
期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
数据更新时间:{{ journalArticles.updateTime }}
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Carette, Jacques其他文献
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
- DOI:
10.1017/s0956796809007205 - 发表时间:
2009-09-01 - 期刊:
- 影响因子:1.1
- 作者:
Carette, Jacques;Kiselyov, Oleg;Shan, Chung-Chieh - 通讯作者:
Shan, Chung-Chieh
Carette, Jacques的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Carette, Jacques', 18)}}的其他基金
From Code to Knowledge to Software
从代码到知识到软件
- 批准号:
RGPIN-2018-05812 - 财政年份:2021
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
From Code to Knowledge to Software
从代码到知识到软件
- 批准号:
RGPIN-2018-05812 - 财政年份:2020
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
From Code to Knowledge to Software
从代码到知识到软件
- 批准号:
RGPIN-2018-05812 - 财政年份:2019
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
From Code to Knowledge to Software
从代码到知识到软件
- 批准号:
RGPIN-2018-05812 - 财政年份:2018
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Disciplined Meta-Programming
严格的元编程
- 批准号:
262084-2012 - 财政年份:2016
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Disciplined Meta-Programming
严格的元编程
- 批准号:
262084-2012 - 财政年份:2015
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Disciplined Meta-Programming
严格的元编程
- 批准号:
262084-2012 - 财政年份:2014
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Disciplined Meta-Programming
严格的元编程
- 批准号:
262084-2012 - 财政年份:2013
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Disciplined Meta-Programming
严格的元编程
- 批准号:
262084-2012 - 财政年份:2012
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
相似海外基金
TELEMETRY - Trustworthy mEthodologies, open knowLedgE & autoMated tools for sEcurity Testing of IoT software, haRdware & ecosYstems
遥测 - 值得信赖的方法,开放的知识
- 批准号:
10087006 - 财政年份:2023
- 资助金额:
$ 4.08万 - 项目类别:
EU-Funded
Knowledge Graph-driven Software Vulnerability Risk Discovery and Assessment
知识图驱动的软件漏洞风险发现与评估
- 批准号:
DP230100716 - 财政年份:2023
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Projects
Proto-OKN Theme 1: Knowledge Graph Construction for Resilient, Trustworthy, and Secure Software Supply Chains
Proto-OKN 主题 1:构建弹性、可信、安全的软件供应链的知识图谱
- 批准号:
2333736 - 财政年份:2023
- 资助金额:
$ 4.08万 - 项目类别:
Cooperative Agreement
Technologies to Support Online Knowledge Sharing and Retrieval for Feature-Rich Software Applications
支持功能丰富的软件应用程序在线知识共享和检索的技术
- 批准号:
RGPIN-2020-05317 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Effectively managing and leveraging crowdsourced knowledge for software engineering
有效管理和利用软件工程的众包知识
- 批准号:
RGPIN-2021-03354 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Knowledge Enhanced Software Repository Search
知识增强软件存储库搜索
- 批准号:
RGPIN-2019-05403 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Leveraging development and field knowledge to assist developers and operators of large software systems
利用开发和现场知识来协助大型软件系统的开发人员和操作人员
- 批准号:
RGPIN-2019-05174 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
From examples to knowledge to software engineering support and automation
从示例到知识再到软件工程支持和自动化
- 批准号:
RGPIN-2019-07168 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Knowledge Enhanced Software Library Documentation
知识增强软件库文档
- 批准号:
RGPIN-2021-02575 - 财政年份:2022
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual
Knowledge Enhanced Software Repository Search
知识增强软件存储库搜索
- 批准号:
RGPIN-2019-05403 - 财政年份:2021
- 资助金额:
$ 4.08万 - 项目类别:
Discovery Grants Program - Individual