![Page 1: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/1.jpg)
The Team:Morris Hopkins - Project Manager
Seungwoo Lee - Language GuruLev Brie - System Architect
Alexandros Sigaras - System IntegratorMichal Wolski - Verification and Validation
SWIM
Wednesday, May 1, 13
![Page 2: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/2.jpg)
WHAT IS SWIM?
★ An object-oriented DSL for collecting data from the web★ Enables access, collection and analysis of web documents out of the
box. ★ Easy to learn for users with programming experience
Easy to Learn Easy Access to Data Easy Collection of Data
+ +
Wednesday, May 1, 13
![Page 3: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/3.jpg)
PROPERTIES
Web-centric Duck Typed+
Wednesday, May 1, 13
![Page 4: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/4.jpg)
WHY SWIM?★Data scraping has been done before
★ But... They’ve always used specialized libraries...
★ We wanted a DSL for data scraping that worked out of the box
VS.
Wednesday, May 1, 13
![Page 5: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/5.jpg)
WHY SWIM?
Business Commercial Research IT
★ SWIM is for researchers★ SWIM is for industry★ SWIM is for general-purpose data analysis
Wednesday, May 1, 13
![Page 6: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/6.jpg)
SWIM HAS...
★An Expressive programming syntax
Wednesday, May 1, 13
![Page 7: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/7.jpg)
SWIM HAS...★Tremendous Power Under The Hood
for users with more specialized demands, SWIM provides an extensible class and function structure that allows for code
reuse, makes use of several aspects of the functional programming paradigm - lambda functions
Wednesday, May 1, 13
![Page 8: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/8.jpg)
SYNTACTIC CONSTRUCTS•Classes
•Functions
Wednesday, May 1, 13
![Page 9: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/9.jpg)
SYNTACTIC CONSTRUCTS•Built-in Data Types•boolean•number
•Derived Data Types•Lists•Dictionaries•URLs•Strings
•Conditionals•if ... elif ... else
Wednesday, May 1, 13
![Page 10: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/10.jpg)
SWIM ARCHITECTUREBLOCK DIAGRAM OF THE SWIM INTERPRETER
Wednesday, May 1, 13
![Page 11: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/11.jpg)
TESTING
Unit Tests
Regression Tests
test_runner.py
+
+
Wednesday, May 1, 13
![Page 12: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/12.jpg)
DEVELOPMENT ENVIRONMENT
★ Software Development Environment:★ Lexing and Parsing: PLY/Python★ Version Control: Git with Github hosting★ Text Editor : Sublime Text 2★ REPL: Custom SWIM REPL★ Live Online Editor : swimco.de★ Test Suite: Python runner for test suite of SWIM files with
integrated regression testing
+ + +
Wednesday, May 1, 13
![Page 13: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/13.jpg)
PROJECT MANAGEMENT★Mentoring Sessions with Prof. Aho
★Weekly Scheduled Meetings + Additional Meetings
★Google Drive for Documentation Management
★Google+, Skype, Google Hangouts, Email, Text, etc. for coordinating meetings/remote work
Wednesday, May 1, 13
![Page 14: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/14.jpg)
PROJECT MANAGEMENTGithub Commits By Date
# Co
mm
its
Date
Wednesday, May 1, 13
![Page 15: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/15.jpg)
PROJECT MANAGEMENT#
Day
of t
he W
eek
Time of Day
Wednesday, May 1, 13
![Page 16: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/16.jpg)
CONCLUSIONWhat we would do differently✴ Plan for scoping right at the beginning
What worked well✴ AST✴ Version Control✴ SWIM REPL
What we learned✴ Writing your own programming language can be tricky. ✴ The more you take care of right at the beginning, the
better!✴ Create a regression test for everything! Problems will
reappear over and over again.✴ MAKE IT MODULAR!!! KEEP IT DRY!
Wednesday, May 1, 13
![Page 17: Morris Hopkins - Project Manager Seungwoo Lee - Language](https://reader030.vdocument.in/reader030/viewer/2022012513/618c3531ef1ef55d6c2cc423/html5/thumbnails/17.jpg)
CONCLUSION
Let’s SWIM!
Wednesday, May 1, 13