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
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
Oxlint JS plugins
kazupon
1
960
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
460
CSC307 Lecture 08
javiergs
PRO
0
670
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
CSC307 Lecture 06
javiergs
PRO
0
690
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
100
AtCoder Conference 2025
shindannin
0
1.1k
並行開発のためのコードレビュー
miyukiw
0
170
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
640
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Skip the Path - Find Your Career Trail
mkilby
0
56
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
75
From π to Pie charts
rasagy
0
120
Paper Plane (Part 1)
katiecoart
PRO
0
4.2k
Fireside Chat
paigeccino
41
3.8k
Six Lessons from altMBA
skipperchong
29
4.1k
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