Laurie Hendren
   HOME





Laurie Hendren
Laurie Hendren (December 13, 1958 – May 27, 2019) was a Canadian computer scientist noted for her research in programming languages and compilers, and for her advocacy for patients to have access to their health data in Quebec. Biography Hendren received a Bachelor of Science, B.Sc. and Master of Science, M.Sc. in computer science from Queen's University, Kingston in 1982 and 1984 respectively. She received a Doctor of Philosophy, Ph.D in computer science from Cornell University in 1990. She then joined the School of Computer Science at the McGill University as an assistant professor in 1990. While there she was promoted to associate professor in 1995 and full professor in 2001. She also served as Associate Dean (Academic) for the Faculty of Science at McGill University from 2005 to 2014. In 2014, she became the 5 of diamonds in the Notable Women of Computing card deck. Awards and notable achievements Hendren was awarded the Leo Yaffe Award for Excellence in Teaching i ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Chandos Lake
Chandos Lake is a lake in North Kawartha, Ontario, Canada. The lake is in the shape of a reversed L, with three main bays: West Bay, connected to the main body of the lake by a long Narrows; South Bay, extending southwest and separated by a curved peninsula; and Gilmour Bay, a smaller, two-lobed bay on the southern tip of the lake, connected by Gilmour Bay Narrows. Chandos Lake is in the Atlantic watershed; fed by springs, it drains from its north end into Flat Creek, which flows into Paudash Lake, thence to the Crowe River, the Trent River (Ontario), Trent River, and Lake Ontario. Chandos is the largest lake in the Crowe River watershed. Chandos Lake measures 1,387 hectares and has a maximum depth of 48 metres. Chandos Lake was originally called Mongosogan by the Mississaugas, Mississauga Anishinabe, on whose traditional territory it lies. Although not one of the Kawartha Lakes proper, Chandos Lake is part of the Kawartha cottage country; the lake is lined with some 1,200 cotta ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language, low-level programming language (e.g. assembly language, object code, or machine code) to create an executable program.Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007 There are many different types of compilers which produce output in different useful forms. A ''cross-compiler'' produces code for a different Central processing unit, CPU or operating system than the one on which the cross-compiler itself runs. A ''bootstrap compiler'' is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a language. Related software ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


AspectJ
AspectJ is an aspect-oriented programming (AOP) extension for the Java programming language, created at PARC. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become a widely used de facto standard for AOP by emphasizing simplicity and usability for end users. It uses Java-like syntax, and included IDE integrations for displaying crosscutting structure since its initial public release in 2001. Simple language description All valid Java programs are also valid AspectJ programs, but AspectJ lets programmers define special constructs called '' aspects''. Aspects can contain several entities unavailable to standard classes. These are: ;Extension methods: Allow a programmer to add methods, fields, or interfaces to existing classes from within the aspect. This example adds an acceptVisitor (see visitor pattern) method to the Point class: : aspect VisitAspect ; Pointcuts: Allow a programmer to specify join poin ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform. The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot. The commercially supported Java releases available from Oracle are based on the OpenJDK runtime. Eclipse OpenJ9 is another open source JVM for OpenJDK. JVM specification The Java virtual machine is an abstract (virtual) computer defined by a specification. It is a part of the Java runtime environment. The garbage collection ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


SableVM
SableVM was a clean room implementation of Java bytecode interpreter implementing the Java virtual machine ( VM) specification, second edition. SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant (JVM spec, Java Native Interface, Invocation interface, Debug interface, etc.) Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained. The implementation was a part of the effort in the early 2000s to break the Java ecosystem free from Sun Microsystems's control. Overview The core engine is an interpreter which used ground-breaking techniques to deliver performance that can approach that of a "naive" just-in-time (JIT) compiler, while retaining the software engineering advantages of interpreters: portability, maintainability and simplicity. This simplicity makes SableVM's source code very accessible and easy to understand for new users/programmers. SableVM is Free Software — it is lic ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Soot (software)
In static program analysis, Soot is a bytecode manipulation and optimization framework consisting of intermediate languages for Java. It has been developed by the Sable Research Group at McGill University. Soot is currently maintained by the Secure Software Engineering Group at Paderborn University. Soot provides four intermediate representations for use through its API for other analysis programs to access and build upon: * Baf: a near bytecode representation. * Jimple: a simplified version of Java source code that has a maximum of three components per statement. * Shimple: an SSA variation of Jimple (similar to GIMPLE). * Grimp: an aggregated version of Jimple suitable for decompilation and code inspection. The current Soot software release also contains detailed program analyses that can be used out-of-the-box, such as context-sensitive flow-insensitive points-to analysis, call graph analysis and domination analysis (answering the question "must event ''a'' follow event ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Open-source Software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to online collaboration, participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software. Open-source software development can bring in diverse perspectives beyond those of a single company. A 2024 estimate of the value of open-source software to firms is $8.8 trillion, as firms would need to spend 3.5 times the amount they currently do without the use of open source software. Open-source code can be used for studying and a ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Programming Language Design And Implementation
Programming languages are typically created by designing a form of representation of a computer program, and writing an implementation for the developed concept, usually an interpreter or compiler. Interpreters are designed to read programs, usually in some variation of a text format, and perform actions based on what it reads, whereas compilers convert code to a lower level from, such as object code. Design In programming language design, there are a wide variety of factors to consider. Some factors may be mutually exclusive (e.g. security versus speed). It may be necessary to consider whether a programming language will perform better interpreted, or compiled, if a language should be dynamically or statically typed, if inheritance will be in, and the general syntax of the language. Many factors involved with the design of a language can be decided on by the goals behind the language. It's important to consider the target audience of a language, its unique features and its purp ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


SIGPLAN
SIGPLAN is the Association for Computing Machinery's Special Interest Group (SIG) on programming languages. This SIG explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users. Conferences * POPL, Principles of Programming Languages (POPL) * PLDI, Programming Language Design and Implementation (PLDI) * International Symposium on Memory Management (ISMM) * Languages, Compilers, and Tools for Embedded Systems (LCTES) * Symposium on Principles and Practice of Parallel Programming (PPoPP) * International Conference on Functional Programming (ICFP) * SPLASH (conference), Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH) * OOPSLA, Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) * HOPL, History of Programming Languages (HOPL) * Dynamic Languages Symposium (DLS) Associated ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Association For Computing Machinery
The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional membership group, reporting nearly 110,000 student and professional members . Its headquarters are in New York City. The ACM is an umbrella organization for academic and scholarly interests in computer science (informatics). Its motto is "Advancing Computing as a Science & Profession". History In 1947, a notice was sent to various people: On January 10, 1947, at the Symposium on Large-Scale Digital Calculating Machinery at the Harvard computation Laboratory, Professor Samuel H. Caldwell of Massachusetts Institute of Technology spoke of the need for an association of those interested in computing machinery, and of the need for communication between them. ..After making some inquiries during May and June, we believe there is ample interest to ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Doctor Of Philosophy
A Doctor of Philosophy (PhD, DPhil; or ) is a terminal degree that usually denotes the highest level of academic achievement in a given discipline and is awarded following a course of Postgraduate education, graduate study and original research. The name of the degree is most often abbreviated PhD (or, at times, as Ph.D. in North American English, North America), pronounced as three separate letters ( ). The University of Oxford uses the alternative abbreviation "DPhil". PhDs are awarded for programs across the whole breadth of academic fields. Since it is an earned research degree, those studying for a PhD are required to produce original research that expands the boundaries of knowledge, normally in the form of a Thesis, dissertation, and, in some cases, defend their work before a panel of other experts in the field. In many fields, the completion of a PhD is typically required for employment as a university professor, researcher, or scientist. Definition In the context o ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]