Martin Odersky
#7,370
Most Influential Person Now
German computer scientist, inventor of Scala programming language
Martin Odersky's AcademicInfluence.com Rankings
Martin Oderskycomputer-science Degrees
Computer Science
#328
World Rank
#341
Historical Rank
Database
#1781
World Rank
#1866
Historical Rank
Download Badge
Computer Science
Martin Odersky's Degrees
- PhD Computer Science ETH Zurich
Similar Degrees You Can Earn
Why Is Martin Odersky Influential?
(Suggest an Edit or Addition)According to Wikipedia, Martin Odersky is a German computer scientist and professor of programming methods at École Polytechnique Fédérale de Lausanne in Switzerland. He specializes in code analysis and programming languages. He spearheaded the design of Scala and Generic Java .
Martin Odersky's Published Works
Published Works
- An Overview of the Scala Programming Language (2004) (653)
- Making the future safe for the past: adding genericity to the Java programming language (1998) (597)
- Pizza into Java: translating theory into practice (1997) (493)
- Scala Actors: Unifying thread-based and event-based programming (2009) (400)
- A call-by-need lambda calculus (1995) (393)
- Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs (2010) (393)
- Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition (2010) (317)
- A Statically Safe Alternative to Virtual Types (1998) (275)
- Scalable component abstractions (2005) (274)
- Type Inference with Constrained Types (1999) (267)
- OptiML: An Implicitly Parallel Domain-Specific Language for Machine Learning (2011) (223)
- A Heterogeneous Parallel Framework for Domain-Specific Languages (2011) (204)
- A Nominal Theory of Objects with Dependent Types (2003) (198)
- Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages (2014) (177)
- Programming in Scala (2008) (169)
- Putting type annotations to work (1996) (163)
- Call-by-name, call-by-value, call-by-need and the linear lambda calculus (1999) (148)
- Independently Extensible Solutions to the Expression Problem (2004) (148)
- ECOOP 2004 – Object-Oriented Programming (2004) (143)
- Type classes as objects and implicits (2010) (138)
- Domain-Specific Program Generation (2004) (128)
- Language virtualization for heterogeneous parallel computing (2010) (122)
- Capabilities for Uniqueness and Borrowing (2010) (119)
- Polymorphic type inference and abstract data types (1994) (118)
- Event-Based Programming Without Inversion of Control (2006) (117)
- Matching Objects with Patterns (2007) (113)
- Concurrent tries with efficient non-blocking snapshots (2012) (113)
- Actors That Unify Threads and Events (2007) (110)
- Optimizing data structures in high-level programs: new directions for extensible compilers based on staging (2013) (104)
- Colored local type inference (2001) (101)
- Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform (2009) (100)
- Building visual language parsers (1991) (97)
- A Generic Parallel Collection Framework (2011) (93)
- Implementing Domain-Specific Languages for Heterogeneous Parallel Computing (2011) (89)
- Abstract State Machines - Theory and Applications (2002) (85)
- Call by name, assignment, and the lambda calculus (1993) (85)
- Extensible algebraic datatypes with defaults (2001) (84)
- The Essence of Dependent Object Types (2016) (78)
- Generics of a higher kind (2008) (75)
- A Core Calculus for Scala Type Checking (2006) (73)
- An Introduction to Functional Nets (2000) (72)
- Spiral in scala: towards the systematic construction of generators for performance libraries (2014) (69)
- Parametric type classes (1992) (66)
- An Overview of the Scala Programming Language Second Edition (2006) (65)
- Building-Blocks for Performance Oriented DSLs (2011) (65)
- Composition and Reuse with Compiled Domain-Specific Languages (2013) (63)
- Hardware system synthesis from Domain-Specific Languages (2014) (62)
- Functional Nets (2000) (62)
- Deprecating the Observer Pattern with Scala.React (2012) (60)
- A second look at overloading (1995) (58)
- Lightweight modular staging (2012) (57)
- A functional theory of local names (1994) (55)
- Scala-virtualized (2012) (54)
- Deprecating the Observer Pattern (2010) (53)
- Parser combinators in Scala (2008) (53)
- Unifying functional and object-oriented programming with Scala (2014) (51)
- Scala-Virtualized: linguistic reuse for deep embeddings (2012) (51)
- Lightweight Polymorphic Effects (2012) (51)
- Foundations of path-dependent types (2014) (51)
- Fighting bit Rot with Types (Experience Report: Scala Collections) (2009) (50)
- Observers for Linear Types (1992) (48)
- Higher-Order Reactive Programming with Incremental Lists (2013) (46)
- Compiling generics through user-directed type specialization (2009) (46)
- How to make destructive updates less destructive (1991) (44)
- Spores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution (2014) (44)
- An Overview of the Scala Programming Language (2. Edition) (2006) (44)
- Yin-yang: concealing the deep embedding of DSLs (2015) (41)
- Instant pickles: generating object-oriented pickler combinators for fast and extensible serialization (2013) (39)
- FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction (2012) (39)
- Simplicitly: foundations and applications of implicit function types (2017) (36)
- Tail call elimination on the Java Virtual Machine (2001) (36)
- Polarized Name Passing (1995) (35)
- Implementing Extensible Compilers (2001) (34)
- Forge: generating a high performance DSL implementation from a declarative specification (2014) (34)
- Constraint-based query optimization for spatial databases (1991) (32)
- An Equational Theory for Transactions (2003) (32)
- Two Ways to Bake Your Pizza - Translating Parameterised Types into Java (1998) (31)
- Miniboxing: improving the speed to code size tradeoff in parametric polymorphism translations (2013) (31)
- The Scala experiment: can we provide better language support for component systems? (2004) (31)
- Contracts for Scala (2010) (30)
- Quasiquotes for Scala (2013) (30)
- Staged parser combinators for efficient data processing (2014) (29)
- Jet: An Embedded DSL for High Performance Big Data Processing (2012) (28)
- JavaScript as an Embedded DSL (2012) (28)
- Negative Boolean Constraints (1996) (27)
- Scalable Programming Abstractions for XML Services (2006) (26)
- Making domain-specific hardware synthesis tools cost-efficient (2013) (24)
- Isolates, channels, and event streams for composable distributed programming (2015) (24)
- Functional programming for all! scaling a MOOC for students and professionals alike (2014) (23)
- A Type System for a Lambda Calculus with Assignments (1994) (23)
- Safe type-level abstraction in Scala (2008) (22)
- Programming in Scala: Updated for Scala 2.12 (2016) (21)
- Compiling structural types on the JVM: a comparison of reflective and generative techniques from Scala's perspective (2009) (19)
- Efficient Lock-Free Work-Stealing Iterators for Data-Parallel Collections (2015) (18)
- Lock-Free Resizeable Concurrent Tries (2011) (18)
- Containers and aggregates, mutators and isolates for reactive programming (2014) (18)
- Near Optimal Work-Stealing Tree Scheduler for Highly Irregular Data-Parallel Workloads (2013) (17)
- Defining context-dependent syntax without using contexts (1993) (16)
- Spatial Query Optimization: From Boolean Constraints to Range Queries (1995) (16)
- A flow-insensitive, modular effect system for purity (2013) (16)
- Scala Macros, a Technical Report (2012) (16)
- Towards equal rights for higher-kinded types (2007) (16)
- A new approach to formal language definition and its application to Oberon (1989) (15)
- Cache-Aware Lock-Free Concurrent Hash Tries (2017) (15)
- Call graphs for languages with parametric polymorphism (2016) (15)
- StagedSAC: a case study in performance-oriented DSL development (2012) (14)
- Automating ad hoc data representation transformations (2015) (14)
- On Lock-Free Work-stealing Iterators for Parallel Data Structures (2014) (14)
- A practical unification of multi-stage programming and macros (2018) (14)
- Programming with variable functions (1998) (14)
- Conc-Trees for Functional and Parallel Programming (2015) (14)
- Miniphases: compilation using modular and efficient tree transformations (2017) (14)
- Scala Roles - A Lightweight Approach Towards Reusable Collaborations (2008) (14)
- A Confluent Calculus for Concurrent Constraint Programming with Guarded Choice (1995) (12)
- Late data layout: unifying data representation transformations (2014) (12)
- Type Classes are Signatures of Abstract Types (1991) (11)
- Objects + Views = Components? (2000) (11)
- Delite (2014) (11)
- An Extension of ML with First-Class Abstract Types (2009) (10)
- Pizza into Java : Translating theory into practiceMartin (1997) (10)
- A Functional View of Join (1999) (10)
- An Overview of Functional Nets (2000) (10)
- Implementing higher-kinded types in Dotty (2016) (9)
- Improving Human-Compiler Interaction Through Customizable Type Feedback (2014) (9)
- Scala Roles: Reusable Object Collaborations in a Library (2008) (9)
- Multi-Lane FlowPools: A Detailed Look (2012) (9)
- Foundations of path-dependent types (2014) (8)
- Named and default arguments for polymorphic object-oriented languages: a discussion on the design implemented in the Scala language (2010) (8)
- PiLib: A Hosted Language for Pi-Calculus Style Concurrency (2003) (8)
- Applying pi: towards a basis for concurrent imperative programming (1996) (8)
- The Call-by-Need Lambda Calculus ( Unabridged ) (1994) (7)
- Self-Interpretation and Reflection in a Statically Typed Language (1993) (7)
- A type-and-effect system for object initialization (2020) (7)
- Nested Types (2001) (7)
- Improving the Performance of Scala Collections with Miniboxing (2014) (7)
- Essentials of Scala (2009) (6)
- Future-Proofing Collections: From Mutable to Persistent to Parallel (2011) (6)
- Improving the Interoperation between Generics Translations (2015) (6)
- Deprecating the Observer Pattern with Scala (2012) (5)
- Semantics-preserving inlining for metaprogramming (2020) (5)
- Translation Correctness for First-Order Object-Oriented Pattern Matching (2007) (5)
- Type-level programming with match types (2022) (5)
- Interflow: interprocedural flow-sensitive type inference and method duplication (2018) (4)
- Leftover curry and reheated Pizza: how functional programming nourishes software reuse (1998) (4)
- Safer exceptions for Scala (2021) (4)
- Region-based off-heap memory for Scala (2015) (4)
- Proceedings of the fifth ACM SIGPLAN international conference on Functional programming (2000) (4)
- Tracking Captured Variables in Types (2021) (4)
- A TASTY Alternative (2016) (4)
- Colored Local Type Inference (colored version) (black and white version) (2001) (4)
- Concurrent Programming Paradigms, A Comparison in Scala (2009) (4)
- An Introduction to Scala (2005) (3)
- Programming with Functional Nets (2000) (3)
- A Syntactic Method for Proving Observational Equivalences (1993) (3)
- Challenges in type systems research (1996) (3)
- Domain-Specific Languages for Heterogeneous Parallel Computing (2013) (3)
- Fighting bit rot with types (2009) (3)
- Capabilities for External Uniqueness (2009) (3)
- Transactors: Unifying Transactions and Actors (2009) (3)
- Relative Effect Declarations for Lightweight Effect-Polymorphism (2012) (3)
- Implementing a Type Debugger for Scala (2012) (3)
- Proceedings of the International Workshop on Abstract State Machines, Theory and Applications (2000) (2)
- A Confluent Calculus for Concurrent Constraint Programming (1997) (2)
- Multi-stage programming with generative and analytical macros (2021) (2)
- Initialization patterns in Dotty (2018) (2)
- Proceedings of the 16th international conference on Compiler construction (2007) (2)
- Tool Demo: Scala-Virtualized (2011) (2)
- MINOS: A New Approach to the Design of an Input/Output Library for Modula-2 (1989) (2)
- Staged parser combinators for efficient data processing (2014) (2)
- Scala unifies traditionally disparate programming-language philosophies to develop new components and component systems. (2014) (2)
- Truly abstract interfaces for algebraic data types: the extractor typing problem (2018) (2)
- Building Program Generators for High-Performance Spiral on Scala (2014) (1)
- Stoic: Towards Disciplined Capabilities (2020) (1)
- Extending MODULA-2 for object-oriented programming (1990) (1)
- ECOOP 2004 -- object-oriented programming : 18th European Conference, Oslo, Norway, June 14-18, 2004 : proceedings (2004) (1)
- Safe Type-level Abstraction in Scala Adriaan Moors (2007) (1)
- ScalaDyno: making name resolution and type checking fault-tolerant (2014) (1)
- Compiler Construction, 16th International Conference, CC 2007, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2007, Braga, Portugal, March 26-30, 2007, Proceedings (2007) (1)
- Tools and Frameworks for Big Learning in Scala: Leveraging the Language for High Productivity and Performance (2011) (1)
- 2011 International Conference on Parallel Architectures and Compilation Techniques, PACT 2011, Galveston, TX, USA, October 10-14, 2011 (2011) (1)
- The evolution of Scala: PLE'14 keynote (2014) (1)
- An actor system for Scala.js Semester project, Fall 2013 (2014) (1)
- Lightweight Polymorphic Effects - Proofs (2012) (1)
- Dependent Object Types Towards a foundation for Scala's type system (2012) (1)
- Challenges in type systems research (1997) (1)
- Celsius: A Model for Safe Initialization of Objects (2020) (1)
- Foundations of Implicit Function Types (2017) (0)
- Virtual ADTs for portable metaprogramming (2021) (0)
- Functional Stream Libraries and Fusion: What's Next (NII Shonan Meeting 2018-14) (2018) (0)
- When Compilers Are Mirrors (2012) (0)
- Loyola eCommons Loyola eCommons Putting Type Annotations to Work Putting Type Annotations to Work (2021) (0)
- Common Subexpression Elimination in Dotty (2015) (0)
- Language support for the construction of high performance code generators (2013) (0)
- Call-graph-based Optimizations in Scala (2017) (0)
- The Linear Lambda Calculus (1995) (0)
- A comparison in Scala (2009) (0)
- Achieving Efficient Work-Stealing for Data-Parallel Collections (2013) (0)
- Keynote 2: Actors Reloaded (2012) (0)
- Special Issue on State in Programming Languages - Introduction (1995) (0)
- An Equational Theory for Transa tions ? (2003) (0)
- Recursive data types and report on the Mona notation for algorithms (1989) (0)
- TASTY Reference Manual (2016) (0)
- Implementing Method Type Specialisation In Dotty (2015) (0)
- Edinburgh Research Explorer The call-by-need lambda calculus (2018) (0)
- A Syntactic Method for Proving Observational Equivalences a Syntactic Method for Proving Observational Equivalences (1993) (0)
- Scala Rationale (2007) (0)
- Scoped Capabilities for Polymorphic Effects (2022) (0)
- Domain-Specific Program Generation (Dagstuhl Seminar 03131) (2021) (0)
- 1 Full Project Description 1 . 1 Motivation : Empowering users to Develop for Smartphones (2011) (0)
- PhoneLab: Cloud-Backed Development Environment for Smartphones (2011) (0)
- High-Level Concurrent Languages (Dagstuhl Seminar 97041) (2021) (0)
- BlitzViews - lazy parallel operations for Scala collections (2014) (0)
- On a Near Optimal Work-Stealing Tree Data-Parallel Scheduler for Highly Irregular Workloads (2013) (0)
- A Second Look at Overloading In Proc (2009) (0)
- Late data layout (2014) (0)
- Digital Design with Implicit State Machines (2020) (0)
This paper list is powered by the following services:
Other Resources About Martin Odersky
What Schools Are Affiliated With Martin Odersky?
Martin Odersky is affiliated with the following schools: