Steven R. Vegdahl
Associate Professor of Computer Science, Emeritus
Shiley
School of Engineering, MSC 145
University of Portland
5000 N. Willamette Blvd.
Portland, OR 97203-5798
email: vegdahl@up.edu
web: http://faculty.up.edu/vegdahl
Education:
Ph.D., Computer Science |
|
B.S., Mathematics |
Carnegie-Mellon University |
Stanford University |
|
December 1982 |
June 1976 |
Employment:
June 2002 – June 2023 University of
Portland, Portland, OR
Associate Professor of Computer Science
Teaching undergraduate courses and laboratories in computer science. Performing research in compilers, computer architecture, computer science education, and data structures. Advising students. Advising senior capstone projects. Reviewing and revising CS curriculum. Serving on school and university committees. (Chair of the CS program 2005-2018.)
August 1996 - May 2002 University of
Portland, Portland, OR
Assistant Professor of Computer Science
Teaching undergraduate courses and laboratories in computer science. Performing research in compilers and data structures. Advising students. Facilitating relations with nearby industry; placing students in (and supervising) internships. Serving on school and university committees. Reviewing and revising CS curriculum.
June 1990 - June 1996 Adaptive Solutions,
Inc., Beaverton, OR
Senior Software Engineer
Led a three-person team that designed and implemented the language and compiler for a parallel version of the C programming language for the CNAPS parallel computer, an architecture designed for neural-net and pattern-matching applications. Gave presentations about the architecture, language and compiler to customers and researchers.
August 1995 - December 1995 University of
Portland, Portland, OR
Adjunct Assistant Professor of Computer Science
Taught an undergraduate course in assembly language programming. (Concurrent with position at Adaptive Solutions.)
August 1989 - May 1990 Harvey Mudd College, Claremont, CA
Visiting Associate Professor of Computer Science
Taught courses whose topics included introductory programming, computer architecture, compilers, theory of computation, and programming languages. Supervised a seven-person student research group that implemented a compiler for the Turing programming language. Served on committee that designed a curriculum for a new computer science major. Senior-thesis advisor for two students.
August 1983 - August 1989 Tektronix Inc.,
Beaverton, OR
Research Computer Scientist
Part of a three-person team that implemented a Scheme compiler for the Motorola 88000; responsibilities included design of a major portion of the runtime environment, and the implementation of many of the source- and intermediate-level transformations. Used the Smalltalk programming language to implement a program transformation system. Designed and helped implement a program-generator that produces interpreters for variants of the GPIB machine-interface language, which has been used in a number of successful Tektronix products.
March 1986 - March 1989 Oregon Graduate
Institute, Beaverton, OR
Adjunct Assistant Professor of Computer Science
Taught a graduate-level two-course sequence in compilers where students implemented a compiler for a subset of the ML programming language. (Concurrent with Tektronix position.)
February 1983 - August 1983 Tartan
Laboratories, Pittsburgh, PA
Software Engineer
Implemented several modules of an automated compiler-generating system.
Member, Association for Computing Machinery (SIGPLAN, SIGMICRO, SIGCSE).
· Introduction to Engineering
· Introduction to Computer Science
· Introduction to Computer Science Laboratory
· Object-Oriented Design
· Object-Oriented Design Laboratory
· Data Structures
· Data Structures Laboratory
· Unix/Linux Tools Laboratory
· Assembly Language Programming
· Analysis of Algorithms
· Computer Architecture
· Programming Languages
· Compiler Design
· Advanced Programming Techniques
· Computer Graphics
· Topics in Computer Science
Compilers, compiler testing, functional and object-oriented programming languages, data structures.
· Presidential Advisory Committee on Athletics
· Committee on Curriculum and Academic Regulations
· Committee on Committees
· Committee on Teaching and Scholarship
· Faculty search committees
Jones, A.K. and R.J. Chansler, I. Durham, P. Feiler, D.A. Scelza, K. Schwans, S.R. Vegdahl, Programming Issues Raised by a Multiprocessor, Proc. IEEE, Vol. 66, No. 2, 1978.
Jones, A.K. and R.J. Chansler, I. Durham, K. Schwans, S.R. Vegdahl, StarOS, A Multiprocessor Operating System for the Support of Task Forces, Proc. 7th Symposium on Operating Systems Principles, 1979.
Gehringer, E.F. and S.R. Vegdahl, LETTER: a System for Personalizing Processed Text, Proc. 3rd Symposium on Small Systems, 1980.
Vegdahl, S.R., Phase Coupling and Constant Generation in an Optimizing Microcode Compiler, Proc. 15th Annual Workshop on Microprogramming, October 1982.
Vegdahl, S.R., Local Code Generation and Compaction in Optimizing Microcode Compilers, Ph.D. Thesis, Computer Science Department, Carnegie-Mellon University, 1982.
Vegdahl, S.R., A Survey of Proposed Architectures for the Execution of Functional Languages (invited paper), IEEE Transactions on Computers, Vol. C-33, No. 12, December 1984.
Vegdahl, S.R., The Design of an Interactive Compiler for Optimizing Microprograms, Proc. 18th Annual Workshop on Microprogramming, December 1985.
Vegdahl, S.R., Microcode Optimization: Examples and Approaches, IEEE Software, Vol. 3, No. 4, July 1986.
Vegdahl, S.R., Moving Structures between Smalltalk Images, Proc. of OOPSLA-86 (Conference on Object-Oriented Systems, Languages and Applications), September 1986.
Miller, M.S. and H. Cunningham, C. Lee, S.R. Vegdahl, The Application Accelerator Illustration System, Proc. OOPSLA-86, September 1986.
Vegdahl, S.R., "Architectures that Support Functional Programming Languages," pp. 405-453 in Computer Architecture, Concepts and Systems, edited by V.M. Milutinovic, North-Holland, 1988.
Vegdahl, S.R., and U.F. Pleban, The Runtime System for Screme, a Scheme Implementation on the 88000, Proc. 3rd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-III), April 1989.
Vegdahl, S.R., A Dynamic-Programming Technique for Compacting Loops, Proc. 25th Annual International Symposium on Microarchitecture, December 1992.
Vegdahl, S.R., Using Node Merging to Enhance Graph Coloring, Proc. SIGPLAN Conference on Programming Language Design and Implementation, May 1999.
Vegdahl, S.R., Using Visualization Tools to Teach Compiler Design, Consortium for Computing in Small Colleges Northwest Conference, October 2000.
Vegdahl, S.R., MIPSPILOT: A Compiler-Oriented MIPS Simulator, Journal of Computing in Small Colleges, December 2008, Vol. 24, No. 2.
Vegdahl, S.R., Analysis of Recursive, List-Based Insertion
Sort, presented at SIGCSE conference (March 2014) in Atlanta, GA.