Design and Implementation of Modern Programming Languages (Seminar) Guido Salvaneschi Joscha Drechsler
Outline • Administrivia • Intro • Schedule • Topics
GENERAL INFORMATION
Administrivia • Guido Salvaneschi – Best way to find me is by email – salvaneschi@st.informatik.tu-darmstadt.de – Office A222 – Group of Mira Mezini
Intro • Introduce students to the core techniques of scientific work – Give a scientific talk – Process of writing and publishing research papers – Review a paper • Learn an advanced topic on PL – Compare and evaluate existing solutions
Timeline • Paper submission: June 11 th • Reviews submission: June 18 th (1 Week!) • Feedback meetings: June, Week of 22 nd through 26 th • Camera ready: Friday, July 3 rd • Seminars: Friday, July 10 th Start Early!
Guidelines and Suggestions • Find new references – Try not to summarize everything that's written in references or in the references' references. • Be complete in the bibliography, deep in the analysis • Tell a coherent story about one aspect of the topic. • Please present technologies, with your own words and your own examples. – E.g. : the same running example through the paper
Reviews • A summary of the paper – To demonstrate that you read and understood • Suggestions for the author, regarding both content and presentation – Be realistic and concrete • A list of the major positive and negative issues – Honest! mainly used to grade the reviewer, not the paper
Grades • Paper 40 % • Talk 40 % • Reviews 20 % • Once more. Tell a nice story. Compare things. Find advantages and limitations. Provide examples in different cases. – Papers are there to read – This is the value that you add
Where to start • Send me an email with your name and a list of 3 topics – Order by preference. – Or consider synergies with DAIMPL • Check the details on the course website. – Time slots for seminars – Paper length and format – … • Topics will be assigned • We provide you some references as a starting point
TOPICS
.NET Reactive Extensions and Bacon.js • Data-flow programming model – Event streams – Everything is Observable – C#, Java, Scala, Javascript – Asynchronous – Functional combinators var suggestion1Stream = close1ClickStream .combineLatest(responseStream, function(click, listUsers) { return listUsers[Math.floor(Math.random()*listUsers.length)]; } ) .merge( refreshClickStream.map(function(){ return null; }) ) .startWith(null);
Testing for event-based systems • Map-reduce – Events can be async – Nondeterminism! • How to explore the whole space ?
Omniscient debugging • What if debuggers can go back in time? • Register ALL events – Performance / memory issues • Navigate back in time – Find the root source of a bug
Programming models for massive data processing • Map-reduce – Huge amount of data e.g., from the Internet require efficient processing – Formulation in terms of basic operations (map, reduce) – Highly-optimized backends , e.g. clusters, clouds, etc… – Extension to the basic model: Twister, HaLoop , Spark,… • Incremental approaches: – Not only batch processing: view maintenance-like systems
THE END
Recommend
More recommend