Yannis Smaragdakis
#132,375
Most Influential Person Now
Greek computer scientist
Yannis Smaragdakis's AcademicInfluence.com Rankings
Yannis Smaragdakiscomputer-science Degrees
Computer Science
#6498
World Rank
#6851
Historical Rank
Object Oriented Programming
#12
World Rank
#12
Historical Rank
Software Engineering
#298
World Rank
#304
Historical Rank
Database
#7830
World Rank
#8144
Historical Rank
Download Badge
Computer Science
Yannis Smaragdakis's Degrees
- PhD Computer Science University of Washington
- Masters Computer Science University of Washington
- Bachelors Computer Science University of Crete
Similar Degrees You Can Earn
Why Is Yannis Smaragdakis Influential?
(Suggest an Edit or Addition)According to Wikipedia, Yannis Smaragdakis is a Greek-American software engineer, computer programmer, and researcher. He is a professor in the Department of Informatics and Telecommunications at the University of Athens. He is the author of more than 130 research articles on a variety of topics, including program analysis, declarative languages, program generators, language design, and concurrency. He is best known for work in program generation and program analysis and the Doop framework.
Yannis Smaragdakis's Published Works
Published Works
- JCrasher: an automatic robustness tester for Java (2004) (453)
- Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs (2002) (371)
- Implementing Layered Designs with Mixin Layers (1998) (344)
- Strictly declarative specification of sophisticated points-to analyses (2009) (318)
- Pick your contexts well: understanding object-sensitivity (2011) (260)
- MadMax: surviving out-of-gas conditions in Ethereum smart contracts (2018) (249)
- Check 'n' crash: combining static checking and testing (2005) (246)
- JTS: tools for implementing domain-specific languages (1998) (241)
- J-Orchestra: Automatic Java Application Partitioning (2002) (231)
- DySy: dynamic symbolic execution for invariant inference (2008) (204)
- Sound predictive race detection in polynomial time (2012) (172)
- The Case for Compressed Caching in Virtual Memory Systems (1999) (164)
- DSD-Crasher: A hybrid analysis tool for bug finding (2006) (151)
- In defense of soundiness (2015) (147)
- EELRU: simple and effective adaptive page replacement (1999) (142)
- Pointer Analysis (2015) (137)
- Hybrid context-sensitivity for points-to analysis (2013) (129)
- Object-oriented frameworks and product lines (2000) (117)
- J-Orchestra: Enhancing Java programs with distribution capabilities (2009) (105)
- Introspective analysis: context-sensitivity, across the board (2014) (103)
- Adaptive Caches: Effective Shaping of Cache Behavior to Workloads (2006) (102)
- Resolving and exploiting the k-CFA paradox: illuminating functional vs. object-oriented program analysis (2010) (95)
- Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency (2009) (91)
- Using Datalog for Fast and Easy Program Analysis (2010) (85)
- DiSTiL: A Transformation Library for Data Structures (1997) (82)
- Mixin-Based Programming in C++ (2000) (75)
- Statically safe program generation with safegen (2005) (75)
- Transactions with isolation and cooperation (2007) (70)
- DSD-Crasher: a hybrid analysis tool for bug finding (2006) (70)
- Generating AspectJ Programs with Meta-AspectJ (2004) (67)
- Gigahorse: Thorough, Declarative Decompilation of Smart Contracts (2019) (65)
- Exception analysis and points-to analysis: better together (2009) (64)
- Static interfaces in C (2000) (63)
- Functional programming in C++ (2000) (63)
- The EELRU adaptive replacement algorithm (2003) (54)
- Ethainter: a smart contract security analyzer for composite vulnerabilities (2020) (52)
- Stream fusion, to completeness (2016) (52)
- More Sound Static Handling of Java Reflection (2015) (50)
- P/Taint: unified points-to and taint analysis (2017) (49)
- Implementing reusable object-oriented components (1998) (47)
- Combining Static and Dynamic Reasoning for Bug Detection (2007) (46)
- Structure-Sensitive Points-To Analysis for C and C++ (2016) (43)
- Scalability-first pointer analysis with self-tuning context-sensitivity (2018) (42)
- cJ: enhancing java with safe type conditions (2007) (38)
- Declarative Datalog Debugging for Mere Mortals (2012) (38)
- Expressive and safe static reflection with MorphJ (2008) (37)
- Dynamically discovering likely interface invariants (2006) (36)
- Effectiveness of anonymization in double-blind review (2017) (36)
- Morphing: Safely Shaping a Class in the Image of Others (2007) (35)
- Flexible reference trace reduction for VM simulations (2003) (32)
- Aspectizing server-side distribution (2003) (32)
- Portable and Efficient Distributed Threads for Java (2004) (31)
- Trace reduction for virtual memory simulations (1999) (30)
- Static Analysis of Shape in TensorFlow Programs (2020) (30)
- Functional programming with the FC++ library (2004) (28)
- Application Generators (2000) (27)
- Set-based pre-processing for points-to analysis (2013) (26)
- Binary refactoring: improving code behind the scenes (2005) (26)
- What can the GC compute efficiently?: a language for heap assertions at GC time (2010) (26)
- Easy language extension with meta-aspectJ (2006) (25)
- Heaps don't lie: countering unsoundness with heap snapshots (2017) (24)
- Efficient and Effective Handling of Exceptions in Java Points-to Analysis (2013) (24)
- Residual investigation: predictive and precise bug detection (2012) (24)
- Streams a la carte: Extensible Pipelines with Object Algebras (2015) (24)
- Program generators and the tools to make them (2004) (23)
- Porting doop to Soufflé: a tale of inter-engine portability for Datalog-based analyses (2017) (23)
- Morphing: Structurally shaping a class by reflecting on others (2011) (23)
- Functional programming in C++ using the FC++ library (2001) (20)
- Scalable satisfiability checking and test data generation from modeling diagrams (2009) (20)
- Domain-specific languages and program generation with meta-AspectJ (2008) (20)
- Precision-guided context sensitivity for pointer analysis (2018) (20)
- A Principled Approach to Selective Context Sensitivity for Pointer Analysis (2020) (20)
- Automatic partitioning for prototyping ubiquitous computing applications (2004) (19)
- Transparent program transformations in the presence of opaque code (2006) (18)
- SEDGE: Symbolic example data generation for dataflow programs (2013) (18)
- Static analysis of Java dynamic proxies (2018) (18)
- General adaptive replacement policies (2004) (18)
- Shooting from the heap: ultra-scalable static analysis with heap snapshots (2018) (17)
- NRMI: Natural and Efficient Middleware (2003) (15)
- Scalable automatic test data generation from modeling diagrams (2007) (15)
- NRMI: natural and efficient middleware (2008) (15)
- Clash of the Lambdas (2014) (14)
- Automating ad hoc data representation transformations (2015) (14)
- Static analysis of Java enterprise applications: frameworks and caches, the elephants in the room (2020) (14)
- Scoping Constructs for Program Generators (1996) (14)
- Pointer Analysis (Dagstuhl Seminar 13162) (2013) (14)
- Efficient Reflection String Analysis via Graph Coloring (2018) (13)
- MadMax: analyzing the out-of-gas world of smart contracts (2020) (13)
- MadMax (2020) (13)
- PQL: A Purely-Declarative Java Extension for Parallel Programming (2012) (12)
- FC++: Functional tools for object‐oriented tasks (2002) (12)
- Taming the wildcards: combining definition- and use-site variance (2011) (11)
- Second-order constraints in dynamic invariant inference (2013) (10)
- Building Product-Lines with Mixin-Layers (1999) (10)
- Precise static modeling of Ethereum “memory” (2020) (10)
- Scoping Constructs for Software Generators (1999) (10)
- Multiparadigm Programming with Object-Oriented Languages (2002) (9)
- Bridging Functional and Object-Oriented Programming (2000) (9)
- Identifying Java calls in native code via binary scanning (2020) (9)
- Pick Your Contexts Well : Understanding Object-Sensitivity The Making of a Precise and Scalable Pointer Analysis (2010) (8)
- A Datalog model of must-alias analysis (2017) (8)
- An efficient data structure for must-alias analysis (2018) (8)
- Layered Development with (Unix) Dynamic Libraries (2002) (8)
- Appletizing: running legacy Java code remotely from a Web browser (2005) (8)
- Making pointer analysis more precise by unleashing the power of selective context sensitivity (2021) (7)
- General and efficient locking without blocking (2008) (7)
- Deep Static Modeling of invokedynamic (2020) (7)
- Defensive Points-To Analysis: Effective Soundness via Laziness (2018) (6)
- Automatic Partitioning: A Promising Approach to Prototyping Ubiquitous Computing Applications (2004) (6)
- Residual Investigation (2014) (6)
- Structured Program Generation Techniques (2015) (5)
- Java Wildcards Meet Definition-Site Variance (2012) (5)
- A Personal Outlook on Generator Research (A Position Paper) (2003) (5)
- Forsaking inheritance: supercharged delegation in DelphJ (2013) (5)
- Class hierarchy complementation: soundly completing a partial type graph (2013) (5)
- Next-paradigm programming languages: what will they look like and what changes will they bring? (2019) (5)
- Symbolic reasoning for automatic signal placement (2018) (4)
- Proceedings of the 2nd international conference on Generative programming and component engineering (2003) (4)
- Precise Static Modeling of Ethereum łMemoryž (2020) (4)
- Reified type parameters using Java annotations (2014) (3)
- Elipmoc: advanced decompilation of Ethereum smart contracts (2022) (3)
- Symbolic value-flow static analysis: deep, precise, complete modeling of Ethereum smart contracts (2021) (3)
- Architectural Styles as Adaptors (1999) (3)
- Optimal Trace Reduction for LRU-based Simulations (1998) (3)
- Implementing Layered Designs with Mixin Layers 1 (1998) (2)
- Trace Reduction for LRU-Based Simulations (1998) (2)
- Generative Programming and Component Engineering, 7th International Conference, GPCE 2008, Nashville, TN, USA, October 19-23, 2008, Proceedings (2008) (2)
- Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (2016) (2)
- Symbolic Reasoning for Automatic Signal Placement (Extended Version) (2018) (2)
- Invited talk: program generators and the tools to make them (2004) (2)
- Adaptive Replacement Algorithm Templates and EELRU (2010) (2)
- Refactoring Java generics by inferring wildcards, in practice (2014) (2)
- A Backend Extension Mechanism for PQL/Java with Free Run-Time Optimisation (2015) (2)
- Morphing Software for Easier Evolution (2007) (2)
- Streams à la carte: Extensible Pipelines with Object Algebras (Artifact) (2015) (1)
- Multiparadigm Programming with OO Languages (2001) (1)
- DOLAR: virtualizing heterogeneous information spaces to support their expansion (2011) (1)
- jUCM: Universal Class Morphing (position paper) (2015) (1)
- Application Partitioning without Programming ( a WhitePaper and Future Work Proposal ) (1)
- Interfaces for Nested Classes (2000) (1)
- High-level data structures: technical perspective (2012) (1)
- Generative Programming and Component Engineering (2003) (1)
- Mixin-Based Programming in C + + 1 (1998) (1)
- Another Look at Architectural Styles and ADAGE 1 UT-ADAGE-95-02 (1995) (1)
- Clash of the Lambdas Through the Lens of Streaming APIs (2014) (1)
- Performing Replacement in Modem Pools (2000) (1)
- Building Product-Lines with Mixin-Layers 1 (1999) (1)
- Refactoring Java generics by inferring wildcards, in practice (2014) (0)
- J-Orchestra: Automatic Java Application Partitioning (a Demonstration Proposal) (0)
- Scalable Automatic Partitioning with J-Orchestra (0)
- Session details: Industrial applications (2013) (0)
- Session details: Keynote address (2013) (0)
- Symbolic Reasoning for Automatic Signal Placement (2020) (0)
- Session details: Static analysis 1 (2014) (0)
- 2 2 Architecture of a Generator (1998) (0)
- Session details: Faults & errors (2013) (0)
- Multiparadigm programming with object-oriented languages (MPOOL) : 1st international workshop 18 June 2001, Budapest : proceedings (2001) (0)
- Faster Scala Collections with Compile-Time Reflection (2013) (0)
- Deep Static Modeling of invokedynamic (Artifact) (2019) (0)
- Building Scalable Libraries with cJ (2007) (0)
- Static Analysis of Shape in TensorFlow Programs (Artifact) (2020) (0)
- Architectural Styles as Adaptors 1 (1999) (0)
- Session details: Domain specific languages (2014) (0)
- Combining Static and Dynamic Reasoning for the Discovery of Program Properties (2008) (0)
- Session details: Keynote address (2013) (0)
- Storage and File Systems (2005) (0)
- Identifying Java Calls in Native Code via Binary Scanning (artifact) (2020) (0)
- Session details: Inheritance and visibility (2007) (0)
- An overview of the Oregon programming languages summer school (2010) (0)
- Generative programming and component engineering : second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003 : proceedings (2003) (0)
- 1 Motivating Example 1 : Late Linking (2019) (0)
- Defensive Analysis: Soundness in Extreme Conditions (2016) (0)
- Web-Advertised Generators and Design Wizards (1998) (0)
- GOTECH : Aspectizing Server-Side Distribution ( a Demonstration Proposal ) (0)
- Artifact of Article (2018) (0)
- Session details: Static analysis 1 (2014) (0)
- Session details: Domain specific languages (2014) (0)
- Explaining bug provenance with trace witnesses (2020) (0)
- Implementing Layered Object-Oriented Designs (1998) (0)
- Foo: a minimal modern OO calculus (2015) (0)
- Artifact: Static Analysis of Enterprise Applications: Frameworks and Caches, the Elephants in the Room (2020) (0)
- Foundations and Trends Pointer Analysis (2015) (0)
- DeAL: Rich Heap Assertions (Almost) For Free (2010) (0)
- Under consideration for publication in J. Functional Programming 1 Functional Programming with the FC++ Library (2002) (0)
- Under consideration for publication in J. Functional Programming 1 Functional Programming with the FC++ Library (2002) (0)
- A docker container with all necessary software (2018) (0)
- Multiparadigm programming with object-oriented languages - MPOOL 2002: 2nd International workshop, 11 June 2002, Malaga, Spain, proceedings (2002) (0)
- My graduate school experience was about intensive learning not only in the field of computer science but also in many other aspects of life, and now I’m a different (hopefully (2005) (0)
This paper list is powered by the following services:
Other Resources About Yannis Smaragdakis
What Schools Are Affiliated With Yannis Smaragdakis?
Yannis Smaragdakis is affiliated with the following schools: