Foundations of Programming Languages – Course Overview
Foundations of Programming Languages- Course Overview Acknowledgments: some slides taken or adapted from lecture notes of stanford CS242 https://courseware.stanford.edu/pg/courses/317431/
Foundations of Programming Languages – Course Overview Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/
What are programming languages for Communication between programmers and Hw Model the real world Model computation communication One of the most fundamental area of computer science Examples assembly imperative(e. g, C), functional, OO, logical, web (e. g Java Script), domain-specific languages Still a very active field both in academia and industry New languages: F#, Go, Scala
What are programming languages for • Communication between programmers and HW – Model the real world – Model computation & communication • One of the most fundamental area of computer science • Examples – assembly, imperative (e.g., C), functional, OO, logical, web (e.g., JavaScript), domain-specific languages • Still a very active field, both in academia and industry – New languages: F#, Go, Scala, …
POPL 2017 Invited talk on rust A POPL 2017(seres)/ A POPL 2017/ Rust: from POPL to practice POPL 2017 When Fri 20 Jan 2017 09: 05-10: 00 at Auditorium - Invited speaker Chair(sk Giuseppe Castagna Abstract In 2015, a language based fundamentally on substructural typing-Rust-hit its 1.0 release, and less than a year stages of incorporating ideas about ownership. How did this come about? Rust's core focus is safe systems programming. It does not require a runtime system or garbage collector, but guarantees memory safety. It does not stipulate any particular style of concurrent programming, but instead provides the tools needed to guarantee data race freedom even when doing low-level shared-state concurrency It allows you to build up high-level abstractions without paying a tax; its compilation model ensures that the abstractions boil away. Aaron Turon its trait system(a descendant of Haskel's typeclasses). The talk will cover these two pillars of Rust design, with P-swS These benefits derive from two core aspects of Rust: its ownership system(based on substructural typing)and particuiar attention to the key innovations that make the language usable at scale. It will highlight the implications for concurrency, where Rust provides a unique perspective, It will also touch on aspects of Rust's development that tend to get less attention within the POPL community: Rust's govemance and open development process. and design considerations around language and library evolution. Finally, it will mention a few of the myriad open research questions around Rust Session Program Fri 20 Jan 09: 05-10: 00: POPL. Invited speaker at Auditorium ChairIs): Giuseppe Castagna 19:05-1000 R Rust: from POPL to practice aron Turon
POPL 2017 Invited Talk on Rust
What do we care ° Easy to use Language design: good syntax, clear semantics, high-abstraction level Enhance software productivity e. g. domain specific languages(DSL Better performance Language implementations compilers, runtime(GC), parallelization Better software quality (reliability and security) Type safety, static/ dynamic checking, verification heoretical foundations Semantics, verification etc Connections with other related fields: logic, computation theory, etc
What do we care • Easy to use – Language design: good syntax, clear semantics, high-abstraction level – Enhance software productivity • e.g., domain specific languages (DSL) • Better performance – Language implementations: compilers, runtime (GC), parallelization • Better software quality (reliability and security) – Type safety, static/dynamic checking, verification • Theoretical foundations – Semantics, verification, etc. • Connections with other related fields: logic, computation theory, etc
Language goals and trade-offs Architect Programmer Programming Language Compiler, Tester Runtime environment DIagnostic Tools
Language goals and trade-offs
Why should you take this course Programming language concepts A language is a"conceptual universe"(Perlis) o0 vs. Functional, for instance Distinguish key properties from superficial details Better programming skills Write more efficient and reliable code Be prepared for new Pl methods paradigms, tools Learn to design your own languages Domain-specific languages (e.g big data, machine learning, networking, robotics)
Why should you take this course • Programming language concepts – A language is a “conceptual universe” (Perlis) • OO vs. Functional, for instance – Distinguish key properties from superficial details • Better programming skills – Write more efficient and reliable code – Be prepared for new PL methods, paradigms, tools • Learn to design your own languages – Domain-specific languages (e.g., big data, machine learning, networking, robotics)
Some pl research goals Design and Implementation Easy to use design), efficient executable code(impl) Multicore/Parallel/Distributed programming Flaw detection static, dynamic, etc Related fields: OS, architecture domain specific fields Principles and Theories Semantics and Properties(e. g expressiveness)of Programming Languages Principles and theories for safety/security/correctness Program analysis and verification Related fields logic and algebra, computation theory
Some PL Research Goals • Design and Implementation – Easy to use (design), efficient executable code (impl) – Multicore/Parallel/Distributed programming – Flaw detection: static, dynamic, etc. – Related fields: OS, architecture, domain specific fields • Principles and Theories – Semantics and Properties (e.g. expressiveness) of Programming Languages – Principles and theories for safety/security/correctness – Program analysis and verification – Related fields: logic and algebra, computation theory
Major Conferences Principles of Programming Languages( POPl) Programming Language Design and Implementation (PLDI) Object-Oriented Programming Systems, Languages Applications (OOPSLA) Principles and Practice of Parallel rogramming( PPoPp International Conferences on Functional Programming (ICFP) Architectural Support for programming Languages and Operating Systems(ASPLOS) Languages, compilers and Tools for embedded systems (LCTES)
Major Conferences • Principles of Programming Languages (POPL) • Programming Language Design and Implementation (PLDI) • Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) • Principles and Practice of Parallel Programming (PPoPP) • International Conferences on Functional Programming (ICFP) • Architectural Support for Programming Languages and Operating Systems (ASPLOS) • Languages, Compilers and Tools for Embedded Systems (LCTES)
Major Conferences(2) Related Logic in Computer Science(LICS Computer aided Verification (CAV)
Major Conferences (2) • Related: – Logic in Computer Science (LICS) – Computer Aided Verification (CAV)
1-slide overview of research@ KYHCS KYHCS: USTC-Yale Joint research center for high Confidence Software founded in 2008) Location Suzhou and hefei Goal: building high-confidence SW systems System software verification(e.g. oS kernels, compilers) Verification of concurrent algorithms(e.g. multicore programs Automated analysis and verification of programs Other new language design and impl. semantics
1-slide overview of research@KYHCS • KYHCS: USTC-Yale Joint Research Center for HighConfidence Software (founded in 2008) – Location: Suzhou and Hefei • Goal: building high-confidence SW systems – System software verification (e.g. OS kernels, compilers) – Verification of concurrent algorithms (e.g. multicore programs) – Automated analysis and verification of programs – Other: new language design and impl., semantics, …
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 新加坡国立大学:Adversarial Personalized Ranking for Recommendation.pptx
- 非洲博茨瓦纳大学:孔子学院介绍.ppt
- 首都经济贸易大学:职业生涯管理中的心理契约因素.ppt
- 当代世界的思想政治教育:新生教育的科学性与实效性.ppt
- 基金申请技巧讲座:如何申请国家自然科学基金.ppt
- 高校教学研究:高等院校课程与精品课程建设(PPT讲稿).ppt
- 华南师范大学教育信息技术学院:《信息技术教育的理论与方法》课程教学资源(PPT课件)第三章 信息能力与技能.ppt
- 山东师范大学教师教育学院:学科课程与教学理论(PPT讲稿).pptx
- 上海市公安局文化保卫分局:2018年上海理工大学留学生安全防范法制宣讲.pptx
- 香港中文大学:A Review on Teaching and Learning Activities and Quality Assurance.ppt
- 论文选题PPT:论文写作任务、进度与要求.ppt
- 简单人生(PPT讲稿)把你的财务人生.pps
- 黄冈职业技术学院:基于工作过程的课程设计与开发解读.ppt
- 山东大学:《生死教育》课程教学资源(PPT课件)第十二章 死亡与永生(与世永存,人类的梦想).ppt
- 学校心理咨询流程与技术(PPT讲稿)咨询心得体会.ppt
- 图书馆传统文献服务与现代信息服务的比较研究.ppt
- 海口经济学院:本科教学审核评估评建工作重点与难点的思考(陈啸).ppt
- 中山大学教育学院:基于一所研究型大学的本科生学习状况调查的实证分析.pptx
- 大连工业大学:“两学一做”学习教育工作布置会暨专题党课(PPT讲稿).ppt
- 湘潭大学:从工程教育专业认证看我国本科教育质量保证体系建设.pptx
- 中国(宁波)大学生创业大赛 China Ningbo college students entrepreneurship competition.ppt
- 合肥工业大学:毕业设计中的文献查询与运用.ppt
- 西南交通大学:专题PPT——大学国际化评价与发现(闫月勤).pptx
- 山东师范大学:《课程与教学理论前沿问题研究》课程教学资源(PPT专题课件)教学理论流派简介(车丽娜).ppt
- 香港大學:母語教學施行情況調查初步分析報告.ppt
- 大连工业大学:新气象新担当、积极推进学校国际化发展.pptx
- 香港中文大学:Education, Rustication and Communist Party Membership:What Pays? What Does Not Pay?.ppt
- 清华大学:高等院校信息素养能力指标体系的研究(面向信息素养 Towards Information Literacy).ppt
- 华东师范大学:社会心理与自我管理(PPT讲稿).ppt
- 合肥学院协同培养卓越人才的探索与实践.ppt
- 西安交通大学:一流大学建设高校建设方案.ppt
- 上海邦德职业技术学院:教育教学科研课题的选题(PPT讲座).ppt
- 学术论文的写作规范与投稿技巧:几点体会(吴曙光).ppt
- 南方医科大学:医学信息获取与管理(检索与利用中外专利).pptx
- 华东师范大学:实践导向的职业教育课程与教学模式(技术学范式).ppt
- 南京师范大学:新时代的劳动者(PPT讲稿).pptx
- 汕头大学:国际视野中的教学改革(顾佩华).ppt
- 合肥学院:树立质量理念建设质量保障体系(王昆仑).ppt
- 北京邮电大学图书馆:网络信息资源的交流、利用和开发.ppt
- 香港城市大学图书馆:建立大学的学术机构典藏.ppt