Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating Program Transformation with srcML an...
Search
Vinay Augustine
November 13, 2012
Programming
0
66
Automating Program Transformation with srcML and LINQ
Presentation at FSE 2012 (
http://www.sigsoft.org/fse20/
).
Vinay Augustine
November 13, 2012
Tweet
Share
More Decks by Vinay Augustine
See All by Vinay Augustine
Team Metrics for Agile Software Development
vinayaugustine
0
65
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
300
Package Management Learnings from Homebrew
mikemcquaid
0
220
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Oxlintはいいぞ
yug1224
5
1.3k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
710
Oxlint JS plugins
kazupon
1
960
AI時代の認知負荷との向き合い方
optfit
0
160
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Basic Architectures
denyspoltorak
0
680
2026年 エンジニアリング自己学習法
yumechi
0
140
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Transcript
Automated Program Transformation with srcML and LINQ Vinay Augustine, Ph.D.
Overview ABB Corporate Research The Problem The
Solution What is srcML? What is LINQ? Demonstration Questions
ABB Corporate Research Industrial Software Systems (ISS) • USA •
Germany • Switzerland • Poland • Sweden • India • China 7 research centers worldwide Raleigh, NC
Software at ABB What motivates us? Embedded Software Software /
Hardware Hybrids 100% Software
Adaptive Maintenance Changes The Problem Month DD, Year | Slide
5 © ABB Group The Scenario Long-lived legacy software Adapt source code for new Compilers Libraries Environments
The Scenario Long-lived legacy software Adapt source code
for new Compilers Libraries Environments Resulting Issues • Time-consuming • Error-prone • Repetitive Adaptive Maintenance Changes The Problem Month DD, Year | Slide 6 © ABB Group
Adaptive Maintenance Changes An Example Month DD, Year | Slide
7 © ABB Group Source: http://msdn.microsoft.com/en-US/library/vstudio/h4bcz65t(v=vs.80).aspx
Our Solution Lightweight Multi-language Easy to test
Fast Familiar to developers Month DD, Year | Slide 8 © ABB Group srcML (fast!) + LINQ (familiar!)
What is it? XML annotation for source code
Why do we like it? Adds structure to source code Multilanguage Fast! Remove it to get original source! What is srcML? (and why do we like it?) Month DD, Year | Slide 9 © ABB Group Source: http://www.sdml.info/projects/srcml/
Provides SQL-like queries for C# Extensive IDE support
in Visual Studio Natural for developers Can query XML LINQ Language INtegrated Query
Automate an adaptive maintenance change on real software Wrap all
uses of “new” with a try/catch block in Demonstration Month DD, Year | Slide 11 © ABB Group Source: http://notepad-plus-plus.org/news/notepad-6.2-release-udl2.html
Demonstration 1. Learn about “new” in srcML 2. Where is
“new” used? 3. Find all expressions that use “new” 4. Transform all “new” expressions 5. Execute the transform 6. Run the new notepad++.exe Steps Month DD, Year | Slide 12 © ABB Group
Questions? Automated Program Transformation with srcML + LINQ Fast
Multi-language Easy to test Go to our github page for • more information • the code • and this demonstration http://github.com/abb-iss/SrcML.NET Month DD, Year | Slide 13 © ABB Group
None