Laurie Hendren
Laurie Hendren (December 13, 1958 – May 27, 2019) was a Canadian computer scientist noted for her research in programming languages and compilers. Biography Hendren received a B.Sc. and M.Sc. in computer science from Queen's University, Kingston in 1982 and 1984 respectively. She received a 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 in the Faculty of Science at McGill University for the academic year 2006–2007. She was made an ACM Fellow in 2009, awarded a Canada Resear ... [...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, 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 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 cottages. The lake features three mar ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Compiler
In computing, a compiler is a computer program that 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 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 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 include, a program that translates from a low-level language to a h ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
AspectJ
AspectJ is an aspect-oriented programming (AOP) extension created at PARC for the Java programming language. 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 points ( ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
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 java runtime environment. The garbage-collection algorithm u ... [...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 ... [...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]   |
|
Open-source Software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and 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 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 2008 report by the Standish Group stated that adoption of open-source software models has resulted in savings of about $60 billion per year for consumers. Open source code can be used for studying and allows capable end users to adapt software to their personal needs in a similar way user scripts an ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Programming Language Design And Implementation
Programming Language Design and Implementation (PLDI) is one of the ACM SIGPLAN's most important conferences. The precursor of PLDI was the Symposium on Compiler Optimization, held July 27–28, 1970 at the University of Illinois at Urbana-Champaign and chaired by Robert S. Northcote. That conference included papers by Frances E. Allen, John Cocke, Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. The first conference in the current PLDI series took place in 1979 under the name ''SIGPLAN Symposium on Compiler Construction'' in Denver, Colorado. The next Compiler Construction conference took place in 1982 in Boston, Massachusetts. The Compiler Construction conferences then alternated with SIGPLAN Conferences on Language Issues until 1988, when the conference was renamed to PLDI. From 1982 until 2001, the conference acronym was SIGPLAN 'xx. Starting in 2002, the initialism became PLDI 'xx, and in 2006 PLDI xxxx. Conference locations and organizers * PLDI 2022 - SIGPLAN Conf ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
SIGPLAN
SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages. Conferences * Principles of Programming Languages (POPL) * 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) * Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH) * Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) * History of Programming Languages (HOPL) * Dynamic Languages Symposium (DLS) Associated journals * ACM Transactions on Architecture and Code Optimization * ACM Transactions on Programming Languages and Systems Proceedings of the ACM on Programming Languages Newsletters * SIGPLAN Notices - Home pageat ACM * Fortran Forum - * Lisp Pointers (final issue 1995) ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
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, claiming 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]   |
|
Doctor Of Philosophy
A Doctor of Philosophy (PhD, Ph.D., or DPhil; Latin: or ') is the most common Academic degree, degree at the highest academic level awarded following a course of study. PhDs are awarded for programs across the whole breadth of academic fields. Because 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 defend their work before a panel of other experts in the field. The completion of a PhD is often a requirement for employment as a university professor, researcher, or scientist in many fields. Individuals who have earned a Doctor of Philosophy degree may, in many jurisdictions, use the title ''Doctor (title), Doctor'' (often abbreviated "Dr" or "Dr.") with their name, although the proper etiquette associated with this usage may also be subject to the professional ethics of their own scholarly field, culture, or society. Those who teach at ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |