Top Banner
The Team: Morris Hopkins - Project Manager Seungwoo Lee - Language Guru Lev Brie - System Architect Alexandros Sigaras - System Integrator Michal Wolski - Verification and Validation SWIM Wednesday, May 1, 13
17

Morris Hopkins - Project Manager Seungwoo Lee - Language ...

Nov 11, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

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 ...

PROPERTIES

Web-centric Duck Typed+

Wednesday, May 1, 13

Page 4: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

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 ...

SWIM HAS...

★An Expressive programming syntax

Wednesday, May 1, 13

Page 7: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

SYNTACTIC CONSTRUCTS•Classes

•Functions

Wednesday, May 1, 13

Page 9: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

SWIM ARCHITECTUREBLOCK DIAGRAM OF THE SWIM INTERPRETER

Wednesday, May 1, 13

Page 11: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

TESTING

Unit Tests

Regression Tests

test_runner.py

+

+

Wednesday, May 1, 13

Page 12: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

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 ...

PROJECT MANAGEMENTGithub Commits By Date

# Co

mm

its

Date

Wednesday, May 1, 13

Page 15: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

PROJECT MANAGEMENT#

Day

of t

he W

eek

Time of Day

Wednesday, May 1, 13

Page 16: Morris Hopkins - Project Manager Seungwoo Lee - Language ...

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 ...

CONCLUSION

Let’s SWIM!

Wednesday, May 1, 13