8/30/17 CSCI 2320 Principles of Programming Languages Introduction Mohammad T . Irfan mirfan@bowdoin.edu www.bowdoin.edu/~mirfan Office Hours: Tue 2:30—4:30 Wed 4—6 Course Information u Syllabus u Grading, etc. u http://www.bowdoin.edu/~mirfan/CSCI-2320.html 1
8/30/17 How to ace this course? u Stay organized u Conceptualize theory with examples u Start early with the assignments u Set aside a lot of time for debugging u Ask lots of questions! Difficulty level u Understanding theoretical concepts u Mastering recursion u Debugging codes efficiently u Adapting fast to code in new languages 2
8/30/17 What is a programming language? u Beginning of computer programs https://www.youtube.com/watch? v=uBbVbqRvqTM u Natural language vs. programming language u 2 key differences Why this course? u Deeply understand how prog. languages work u Express ideas better u Learn new language fast u Tiobe index http://bit.ly/19fhRoL u Better use of known languages u Choose an “appropriate” language u Emergence of data science http://bit.ly/1wb97wH u Better understanding of implementation 3
8/30/17 What will be covered? u Two parts u Principles u Paradigms Principles (~8 weeks) u Syntax u Semantics u Names and types u Functions u Memory management 4
8/30/17 Paradigms (~6 weeks) u Imperative u Object-oriented programming (OOP) u Web u Logic Art of language design u Architecture u Technical setting u Standards u Legacy systems 5
8/30/17 Goals of language design u Simplicity and readability u Clarity about binding u Reliability u Good support u Good library base u Orthogonality u Efficient implementation Designed a language; what’s next? Compilers vs. interpreters 6
Recommend
More recommend