Compilers translate high-level source code into low-level machine code. To represent source code a compiler uses a language called the intermediate representation (IR). An IR for the compilation of functional language...
详细信息
Compilers translate high-level source code into low-level machine code. To represent source code a compiler uses a language called the intermediate representation (IR). An IR for the compilation of functional languages is continuation-passing style (CPS). It provides convenient abstractions for both data flow and control flow. However, CPS conversion is hard to write and the transformations on CPS are untyped. In this thesis we develop an IR based on CPS using the command tree data structure. Command trees allow us to express compiler transformations typically, declaratively, and modularly. The monadic nature of command trees allows us to bind commands together in a succinct manner. We test the usefulness of the new IR by building two versions of the LamToWat compiler that translates the lamdba calculus into WebAssembly. The first version will use a CPS IR and the second version a command tree IR.
This thesis describes a set of APL programs which enable a student to learn A programming language (APL) by using it. The student needs to know only how to log on to the computer and enter a few simple commands to beg...
详细信息
This thesis describes a set of APL programs which enable a student to learn A programming language (APL) by using it. The student needs to know only how to log on to the computer and enter a few simple commands to begin the course. The basic unit of the TUTOR workspace is the text vari- able which describes the use of one of seventy-five built-in APL functions. This description is accessible by a HELP function without going through an entire lesson. other functions conduct interactive question-and-answe: drill. A MENU function lists the units for student selection of a lesson or information on a symbol. The student can also go through a sequence of lessons in a computer-driven course. These programs were written on and for the IBM 3033 installation at Naval Postgraduate School, using APL version u.0 for VM/CMS with IBM 3278 terminals.
Automated program repair can be seen as automated code generation at a micro-scale. The research done in automated program repair is thus particularly relevant today with the movement towards automatic programming usi...
详细信息
ISBN:
(纸本)9798400717673
Automated program repair can be seen as automated code generation at a micro-scale. The research done in automated program repair is thus particularly relevant today with the movement towards automatic programming using tools like Github Copilot. Since automatically generated code from natural language descriptions lack understanding of program semantics, using semantic analysis techniques to auto-correct or rectify the code is of value. In our work we have proposed the use of semantic or symbolic program analysis techniques to automatically rectify code. Effectively symbolic analysis is used to generalize tests into specifications of intent. These techniques can be employed on manually written code as well as automatically generated code. The techniques have been used for security vulnerability repair in software (thereby achieving autonomous cybersecurity) as well as for supporting intelligent tutoring systems. Apart from the practical value of such techniques, conceptually this gave a new direction to use symbolic reasoning. We use symbolic reasoning to derive a logical constraint which would capture what it means for the program to be "correct" thereby inferring specification about intended program behavior. We will conclude with a forward looking perspective on last mile repair of code generated from large language models, as well as acceptable evidences of correctness for such automatically generated code.
Over the past decade, my research has been dedicated to the analysis of mobile applications, with a primary focus on the Android platform. As we delve into the intricacies of mobile app quality and trustworthiness, it...
详细信息
ISBN:
(纸本)9798400717673
Over the past decade, my research has been dedicated to the analysis of mobile applications, with a primary focus on the Android platform. As we delve into the intricacies of mobile app quality and trustworthiness, it becomes imperative to question the prevailing bias in our research toward the Android platform. This keynote talk aims to shed light on the reasons behind this predominant focus and provide insights into the shift of my research paradigm towards the iOS platform. Specifically, the talk will illuminate some of the unique challenges associated with analyzing iOS applications, emphasizing the differences in terms of collecting apps for analysis, the security features, and app deployment mechanisms which make iOS and Android different. I will showcase key findings of a recent prototype that we developed to identify third-party libraries in iOS apps, offering a comparative lens to understand the key differences between these platforms.
[Auto Generated] Section 2 Data Abstraction Section 3 CLU Section 4 Evaluation Abstract The idea of a data abstraction has had a significant impact on the development of programming languages and on programming method...
详细信息
[Auto Generated] Section 2 Data Abstraction Section 3 CLU Section 4 Evaluation Abstract The idea of a data abstraction has had a significant impact on the development of programming languages and on programming methodology. CLU was the first implemented programming language to provide direct linguistic support for data abstraction. This paper provides a history of data abstraction and CLU. CLU contains a number of other interesting and influential features, including its exception handling 1 mec
暂无评论