{"title":"双向编程和软件改编:迈向幸福婚姻","authors":"Zhenjiang Hu","doi":"10.1109/KSE.2017.8119422","DOIUrl":null,"url":null,"abstract":"Bidirectional transformations and bidirectional programming have been attracting a lot of attention lately, both in the programming languages community, and in the software engineering community. As bidirectional programming languages are growing more mature, they are getting easier to use for software engineers, more efficient, and more reliable. The strongest argument in favor of bidirectional programming is its ability to provide a synchronization mechanisms between a source and a view, that is guaranteed to be correct by construction. On the other hand, software adaptation is an ability to adapt at run-time to changing user needs, system intrusions or faults, and changing operational environment. In this talk, we shall explain the essence of bidirectional transformation, introduce a powerful language for bidirectional programming, and show how bidirectional programming can provide a powerful mechanism to modularize adaptive software. This mechanism would be very useful not only for reusing a adaptive software for different target systems, but also for maintaining separation of concerns when developing complex adaptive software.","PeriodicalId":93818,"journal":{"name":"The ... International Conference on Knowledge and Systems Engineering. International Conference on Knowledge and Systems Engineering","volume":"14 1","pages":"x-xii"},"PeriodicalIF":0.0000,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Bidirectional programming and software adaptation: Towards a happy marriage\",\"authors\":\"Zhenjiang Hu\",\"doi\":\"10.1109/KSE.2017.8119422\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Bidirectional transformations and bidirectional programming have been attracting a lot of attention lately, both in the programming languages community, and in the software engineering community. As bidirectional programming languages are growing more mature, they are getting easier to use for software engineers, more efficient, and more reliable. The strongest argument in favor of bidirectional programming is its ability to provide a synchronization mechanisms between a source and a view, that is guaranteed to be correct by construction. On the other hand, software adaptation is an ability to adapt at run-time to changing user needs, system intrusions or faults, and changing operational environment. In this talk, we shall explain the essence of bidirectional transformation, introduce a powerful language for bidirectional programming, and show how bidirectional programming can provide a powerful mechanism to modularize adaptive software. This mechanism would be very useful not only for reusing a adaptive software for different target systems, but also for maintaining separation of concerns when developing complex adaptive software.\",\"PeriodicalId\":93818,\"journal\":{\"name\":\"The ... International Conference on Knowledge and Systems Engineering. International Conference on Knowledge and Systems Engineering\",\"volume\":\"14 1\",\"pages\":\"x-xii\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"The ... International Conference on Knowledge and Systems Engineering. International Conference on Knowledge and Systems Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/KSE.2017.8119422\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"The ... International Conference on Knowledge and Systems Engineering. International Conference on Knowledge and Systems Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/KSE.2017.8119422","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Bidirectional programming and software adaptation: Towards a happy marriage
Bidirectional transformations and bidirectional programming have been attracting a lot of attention lately, both in the programming languages community, and in the software engineering community. As bidirectional programming languages are growing more mature, they are getting easier to use for software engineers, more efficient, and more reliable. The strongest argument in favor of bidirectional programming is its ability to provide a synchronization mechanisms between a source and a view, that is guaranteed to be correct by construction. On the other hand, software adaptation is an ability to adapt at run-time to changing user needs, system intrusions or faults, and changing operational environment. In this talk, we shall explain the essence of bidirectional transformation, introduce a powerful language for bidirectional programming, and show how bidirectional programming can provide a powerful mechanism to modularize adaptive software. This mechanism would be very useful not only for reusing a adaptive software for different target systems, but also for maintaining separation of concerns when developing complex adaptive software.