220 likes | 304 Views
Explore the journey from academia to industry in the context of programming language development. Discover the challenges, tools, and methodologies involved in transitioning from research to practical application. Gain insights into database schema evolution, program analysis, and the impact of changes on software systems. Delve into the world of software development with real-world examples and case studies.
E N D
From Program Analysis Research toIndustrial Programming Language Development Andy Maule
Scenario • UCL coffee company™ • Wholesale coffee traders
Sales application • Process orders • Add/update customers
Inventory application • Update stock details • Manage supplier info • Add/remove products
Database schema Order Product ∞ ∞ ∞ 1 1 1 Customer Supplier
Change Supplier Column: Address Column: Country Column: Street Column: Town
Impacts? INSERT INTO Suppliers (Name, Address) VALUES (?, ?) Missing required value Street Invalid Column Name Address Missing required value Town Missing required value Country
Estimate impact by hand • DB Refactoring book: “knowledge built up over time… gut feeling…” • Manual inspection
Don’t change the database! • What will be affected? • What is the cost of this change?
Automated analysis • Program analysis • Compilers App DB Dependences
Precision • False positives • Need low false positives • Go through by hand
How much do low false positives cost O(kn) Analysis time Size of analyzed program
Making it scale • Make algorithms more efficient • Reduce the size of the program
1. Program slicing “… the parts of a program that (potentially) affect the values computed at some point of interest” Backward slice (affect criteria) Criteria Forward slice (affected by criteria)
Estimation using SUITE • Schema • Update • Impact • Tool • Environment
Does it work? Version history Predict effects Compare to differences … App (v.234) App (v.235) … changes
Internship • Building tools is hard! • How is it done in the real world? • I got to find out
Now… • The M programming language • The Oslo project
What’s it like being a PhD in Industry? • At least 5 PhDs on my team • REALLY Smart people • REALLY interesting work • Lots of resources • Potentially big impact • Good pay
The end… andymaul@microsoft.com Funded by London Software Systems