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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
CSC307 Lecture 06
javiergs
PRO
0
690
CSC307 Lecture 07
javiergs
PRO
0
550
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
CSC307 Lecture 02
javiergs
PRO
1
780
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
280
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
高速開発のためのコード整理術
sutetotanuki
1
400
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
240
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Optimizing for Happiness
mojombo
379
71k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
330
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
66
The Invisible Side of Design
smashingmag
302
51k
HDC tutorial
michielstock
1
380
A better future with KSS
kneath
240
18k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
55
Un-Boring Meetings
codingconduct
0
200
Documentation Writing (for coders)
carmenintech
77
5.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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