#include main() { for(;;) { printf ("Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. !\n"); } } #include "stdio.h" #define e 3 #define g (e/e) #define h ((g+e)/2) #define f (e-g-h) #define j (e*e-g) #define k (j-h) #define l(x) tab2[x]/h #define m(n,a) ((n&(a))==(a)) long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L }; int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 }; main(m1,s) char *s; { int a,b,c,d,o[k],n=(int)s; if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); } else switch(m1-=h){ case f: a=(b=(c=(d=g)< Jari Arkko Jari Arkko Laboratory of Information Processing Science Helsinki University of Technology Otakaari 1 02150 Espoo Finland Judges notes: On many systems the compiler will not allow you to send the object file to /dev/tty. The author suggested: cc -c -o /dev/tty jar.1.c On systems that have symbolic links, we suggest: ln -s /dev/tty jar.1.o cc -c jar.1.c if your system has symbolic links. The shell script run by the makefile simply cats the .o file to the terminal which can be used as a last resort. Abuse of the rules winners usually result in a change of the rules. Starting in 1990, compiling entries must result an regular file which can be executed. Selected notes from the author: This program is (supposedly) the smallest C program able to print "Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. .". The compilation itself produces the desired printout and the program need not be actually run. Copyright (c) 1989, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel. char*_="Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. .\n"; Most Versatile Source: Jyrki Holopainen Jyrki Holopainen Oy LM Ericsson Ab SF-02420 Jorvas Finland Judges' comments: To use: make lmfjyh ./lmfjyh See the makefile for details. There's more than one way to get around disk quotas. :-) Some people have reported problems compiling this entry with gcc 2.3.3. The make command: make tidy will remove the "special" file that is created during the make of lmfjyh. Selected notes from the author: "Practical and efficient method of compressing source code" 1. Introduction I will shortly present a totally new compression method. It may be used to compress any types of files, but it works best with C-source code. As an example, I have taken a simple "Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. !" program that should be familiar to all C-programmers. Listing 1. A simple "Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. " program: main() { puts("Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. !"); } 2. Packing method Normally a file name is used only to identify the file, but this new revolutionary method introduces a totally new concept: THE FILE NAME IS THE PROGRAM. There is no need to waste valuable disk space to store source code. The program is embedded in the file name, only a minor portion of it is inside the file. Listing 2. Compressed "Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. ": char*_=__FILE__; Listing 3. Code embedded in the file name: ";main(){puts("Jeffrey Palm 472 Commonwealth Ave. #8 Boston, MA, 02215-2736 College of Computer and Information Science Northeastern University 360 Huntington Ave Email: jeff@jeffpalm.com Web: http://jeffpalm.com Objective --------- To pursue summer internships, both in research and development, in the general area of programming languages, while pursuing my Ph.D. Education --------- . Northeastern University, Boston, MA (Sep 2003 -1) Ph.D. Computer Science Emphasis: Programming Languages/Systems, Aspect-Oriented Programming . University of Colorado, Boulder, CO, GPA: 3.91/4.0 (Sep 2001-May 2003) M.S. Computer Science Thesis: On the Relationship Between Object-Oriented Metrics and Software Evolution . University of Florida, Gainesville, FL, GPA: 3.89/4.0 (Sep 1997-May 2000) B.S. Computer Engineering (with highest honors), Minor in Mathematics Thesis: A Programming Language and Hybrid Editor Generation System Industrial Experience --------------------- . IBM Research, Research Staff, Hawthorne, NY, (Aug 2004-present). Working on various aspects of the Concern Manipulation Environment (CME) (http://eclipse.org/cme). Mentors: Peri Tarr and Harold Ossher. . IBM Research, Intern, Hawthorne, NY, (May 2004-Aug 2004). Created a general-purpose framework for adding JSR 45 (debugging information) support to Java systems and integrated this support into parts of the CME; added such support to the Jikes and ANTLR parser generators. Added to the CME with an assembly toolkit based on the Shrike bytecode toolkit, and informant toolkits based on Shrike, EMF, and Microsoft IL assembly. Added to various components of CME including testing tools, documentation tools, and performance-tuning tools. Mentor: Peri Tarr. . NASA Ames Research Center, SSRP Intern, Mountain View, CA, (Jun 2003-Aug 2003) Explored, designed, and implemented a language for quantifying events over programs called The Puffin. Mentor: Bob Filman. . IBM, Extreme Blue Intern, Cambridge, MA, (May 2002-Aug 2002) Enhanced the Jikes RVM to run the Java IDE Eclipse. Implemented the Java Wire Debugging Protocol. Improved the threading and I/O systems, resource management, se rialization, and further libraries to comply with the Java 1.4 specification. Mentor: Julian Dolby. . Xerox PARC, Researcher, Palo Alto, CA, (Aug 2000-Aug 2001) Developer on the programming language AspectJ . Designed and implemented the de bugger (cleanroom jdb), documentation tool (cleanroom javadoc), Jakarta Ant support, and test suite/harness, and build system. Worked additionally on the compiler and support for existing products, such as Forte and Netbeans. Supervisor: Jim Hugunin. . Xerox PARC, Graduate Intern, Palo Alto, CA, (May 2000-Aug 2000) Explored Aspect-Oriented solutions to software engineering problems, including implement ing various tools in AspectJ, such as the debugger. Mentor: Crista Lopes. Academic . Northeastern Univ., Research Assistant, College of Computer Sci., (Sep2003-) experience Working with Karl Lieberherr to unify the ideas in AspectJ and Demeter. Adding funtion ality to the DJ tool in the Demeter tool suite. Academic Experience ------------------- . Northeastern Univ., Instructor, College of Computer Sci., (Jan 2005-May 2005 ) Instructed CSU211, Introduction to Computing. Organized and taught a class of approximately 25 students; managed two teaching assistants. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2004-Dec 2004) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Northeastern Univ., Teaching Assistant, College of Computer Sci., (Sep 2003-Dec 2003) Assisted in teaching CSU211, Introduction to Computing, by holding lab sessions, o±ce hours, grading work, and helping create assignments and tests. Instructor: Matthias Felleisen. . Univ. of Colorado, Teaching Assistant, Computer Science Dept., (Aug 2002-Dec 2002) Assisted in teaching CSCI 3155 -Programming Languages by holding recitation sessions, office hours, grading homework, and helping create assignments. Instructor: Martin Hirzel. . Univ. of Colorado, Research Assistant, Computer Science Dept., (Aug 2001-May 2002) Explored energy-e±cient compilation techniques over a network by carrying out compilation tasks remotely. Published in LCTES 2002, Berlin, Germany. Advisor: Amer Diwan. . Univ. of Florida, Teaching Assistant, Computer Engineering Dept., (Jan 2000-May 2000) Assisted in teaching COP 5555 -Graduate Programming Languages, by holding o±ce hours and grading homework & tests. Instructor: Beverly Sanders. . Univ. of Florida, Research Assistant, Computer Engineering Dept., (May 1999-May 2000) Designed and implemented a programming language and hybrid editor generator in C++, Perl, and Tcl while working with the Adaptive Image Manager team. Used this system to generate a language for the Image Algebra, helping to quickly evaluate network configura tions while prototyping image manipulation algorithms. Mentor: Joe Wilson. Publications (All papers are available at http://jeffpalm.com/papers) ------------ . Karl J. Lieberherr, Jeffrey Palm, and Ravi Sundaram. Expressiveness and Complexity of Crosscut Languages. Workshop on the Foundations of Aspect Oriented Programming Languages, AOSD 2005, Chicago, IL, USA, 2005. . D. Shepherd, J. Palm and L. Pollock. Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna. Workshop on Aspect Reverse Engineering, Delft University of Technology, the Netherlands, November, 2004. . J. Palm, K. Anderson, and K. Lieberherr. Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability. Workshop on Software-engineering Properties of Languages for Aspect Technologies, AOSD, Boston, MA, 2003. . J. Palm, H. Lee, A. Diwan, and J. E. B. Moss. When to use a compilation service. Lightweight Compilers and Tools for Embedded Systems, Berlin, Germany, 2002. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting Started with AspectJ . October 2001 Communications of the ACM. . G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ . Proceedings of the 15th European Conference on Object-Oriented Program ming, Budapest, Hungary, June, 2001. . Jeffrey Palm. A Programming Language and Hybrid Editor Generator. Highest Honors The sis. Department of Computer Science and Selected Projects (All projects are available at http://jeffpalm.com/projects) -------- . JavaPalm (http://javapalm.sourceforge.net) A large suite of Java utilities. . DemeterCop (http://demetercop.sourceforge.net) Looking at the effects of violating the Law of Demeter on software quality . Ajdoc by Reflection (http://reflectajdoc.sourceforge.net) A compiler extension to the documentation tool ajdoc from the AspectJ Project that uses reflection rather than requiring the source code. . Harry Legs (http://jeffpalm.com/harrylegs) My undergraduate thesis was a domain-specific programming language generation system. . Translated (http://jeffpalm.com/im) Before Microsoft patented it, I wrote a translating IM client. . NetTraversals (http://www.ccs.neu.edu/home/jpalm/nettraversals) .NET implementaton of the Adaptive Programming Library from the Demeter Group. !");}char*C=".c The sample program in listing 1 is 36 bytes long. By using the new compression method, the example program may be squeezed to sixteen bytes. In the example the compression ratio is 2:1. It is evident that the longer the program is, the better the compression ratio is. The maximum compression ratio in a UNIX environment is 254:16 which equals approximately to 16:1. By using the method a one megabyte of source code can be compressed to 64 kilobytes. One might easily think that the program could be compressed to a single byte by writing a one character long preprocessor directive in the source file and defining the actual source code in the command line, eg. 'cc hello.c -DX=main(){puts...'. With this method nothing is gained, since the compiling commands must be stored in a file, and that takes even more space than writing the code in a source file as presented in listing 1. 3. Packing files in a UNIX environment In a UNIX environment it is possible to write almost any program by including the code in file names. Since '/' is used to separate path components and cannot therefore exist in a file name, all features of C-language cannot be used. In C, the '/' is used as a division operator and it may also be a part of a comment start and end identifier. This is, however, not a dangerous limitation, since practice has shown that comments are almost totally unnecessary. A real programmer can more easily understand pure source code, and misleading comments are disastrous. The division operation may be replaced with pow(x, -1) and multiplication when using real numbers or with div() function when using integers. Large programs must be separated into small modules. This enforces people to write better programs, since monolithic programming style cannot be used. Program development will also be faster, no extra code need not be recompiled after changes have been made. 4. Usage with currently available tools I have tested how well this new method works with currently available programming tools. Any ANSI conforming C-compiler that runs under a REAL operating system should be able to compile the code. (there may be problems with some older UNIX variants) 4.1. Compilers: These worked: gcc versions 2.0, 2.1, 2.3.2 (ld failed at AIX with gcc 2.1) cc (HP-UX) cc (VAX) These failed miserably: cc (SunOs/Solaris) - could not start cpp properly cc/xlc (AIX) - could not open source 4.2. Other tools: 4.2.1 Debuggers: (tested at SunOs 4.1.2) dbx - Quit with a very 'informative' error message: "dbx: fatal error: Is a directory" gdb - Printed almost the same error message ":Is a directory". It was, however, possible to step through the code but not list it. 4.2.2 Lints: - None of the lints at tested environments were able to open the file. 5. Conclusions The method can be used to compress any types of files, actually the compression ratios are even better when compressing other files than C-source. For example plain text files may be compressed with INFINITE compression ratio. It is trivial task to compress a 100 kilobytes long text file in about 400 files whose lengths are zero bytes. The drawback is that the files must be unpacked before they can be used, so a large amount of temporary disk space is needed, while C-source is totally usable in the compressed form. Evidently, there is a long way to go before this new programming technique may be widely used, since currently there are only few tools supporting it. The advantages over the traditional methods are, however, so great that there is no doubt that this method will be new standard. Copyright (c) 1993, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel. char*_=__FILE__;