Presidential Young Investigator Award (Computer Research):  Programming Language Features Within a Type-Theoretic Frame-work
{'Code': '05010500', 'Directorate': {'Abbreviation': 'CSE', 'LongName': 'Direct For Computer & Info Scie & Enginr'}, 'Division': {'Abbreviation': 'CCF', 'LongName': 'Division of Computing and Communication Foundations'}}
{'SignBlockName': 'Forbes D. Lewis', 'PO_EMAI': None, 'PO_PHON': None}
Formal methods, as traditionally used in the mathematical analysis of           logic or natural language, have proven useful in several branches of            computer science.  Here the interest is in using formal systems to              study contemporary programming languages, with general aims towards             understanding current concepts more precisely, and using this                   understanding to design simpler and more expressive languages for the           future.  As a means for exploring pragmatic issues, it is planned to            assemble a "programming language work bench" comprising an interactive,         programmable front-end, such as the Cornell Synthesizer Generator, and          a standard incremental code generator.  In another direction, logical           and linguistic problems related to database and knowledge                       representation systems will receive attention.                                                                                                                  One problem in the study of programming languages is the lack of                standard terminology, which reflects a great diversity among                    computational metaphors.  For example, Smalltalk is presented using a           metaphor of "objects" and "messages", while Prolog is often explained           as program synthesis from specifications.  The differences between              approaches makes it difficult to compare or combine features of                 different languages, or to evaluate the hazards and benefits of such            combinations.                                                                                                                                                   Various typed notations for describing computable values, often called          "type theories" or "typed lambda calculi" have attracted increasing             attention in recent years.  These systems are generally simply defined,         without ad hoc syntactic restrictions related to implementation                 considerations, and sufficiently expressive to serve as intermediate            languages for both theoretical analysis and practical implementation.           Early work on denotational semantics helped establish a connection              between simple typed lambda calculus and the Algol-like languages,              while more recent work has both extended this view to languages with            polymorphic functions and data type declarations, and refined the               approach to be more practically useful.  It is planned to continue              research into the mathematical properties of typed lambda calculi, and          efforts to apply these systems to programming language analysis and             design.  In particular, it is planned to develop a modern course on             programming language theory and its application, and use the framework          of typed lamdga calculus to analyze contemporary language features such         as class hierarchies and method inheritance.
{'FirstName': 'John', 'LastName': 'Mitchell', 'PI_MID_INIT': 'C', 'PI_SUFX_NAME': None, 'PI_FULL_NAME': 'John C Mitchell', 'EmailAddress': 'mitchell@cs.stanford.edu', 'NSF_ID': '000338024', 'StartDate': '10/01/1988', 'EndDate': None, 'RoleCode': 'Principal Investigator'}
{'Name': 'Stanford University', 'CityName': 'STANFORD', 'ZipCode': '943052004', 'PhoneNumber': '6507232300', 'StreetAddress': '450 JANE STANFORD WAY', 'StreetAddress2': None, 'CountryName': 'United States', 'StateName': 'California', 'StateCode': 'CA', 'CONGRESSDISTRICT': '16', 'CONGRESS_DISTRICT_ORG': 'CA16', 'ORG_UEI_NUM': 'HJD6G4D6TJY5', 'ORG_LGL_BUS_NAME': 'THE LELAND STANFORD JUNIOR UNIVERSITY', 'ORG_PRNT_UEI_NUM': None}
{'Name': None, 'CityName': None, 'StateCode': None, 'ZipCode': None, 'StreetAddress': None, 'CountryCode': None, 'CountryName': None, 'StateName': None, 'CountryFlag': None, 'CONGRESSDISTRICT': None, 'CONGRESS_DISTRICT_PERF': '""'}
[{'Code': '2875', 'Text': 'SYSTEM SOFTWARE'}, {'Code': '2880', 'Text': 'SOFTWARE ENGINEERING AND LANGU'}]
{'url': 'https://www.nsf.gov/awardsearch/download?DownloadFileName=1988&All=true', 'xml': '8858030.xml'}