Ken Sailor - Academia.edu (original) (raw)

Ken Sailor

Uploads

Papers by Ken Sailor

Research paper thumbnail of Falafel: Arrays in a Functional Language

Arrays, Functional Languages, and Parallel Systems, 1991

Research paper thumbnail of A synthesis of type-checking and parsing

Computer Languages, 1993

Al~traet--The context-free grammars and parsers conventionally used to define and interpret concr... more Al~traet--The context-free grammars and parsers conventionally used to define and interpret concrete syntax lead to constrained expression notations. This paper gives algorithms which support less constrained, more intuitive notations. These algorithms can be viewed as context-sensitive parsers, where the context that is taken into account is the type structure of the expression. Or they can be viewed as type checkers that determine the form of the abstract syntax. The approach taken seamlessly integrates parsing and type-checking in the formalism of Markov algorithms. The interpretation of concrete syntax by these algorithms is unambiguous. At least one algorithm, DMA-T, is practical; its worst case time is O(tn 2) where n is the length of the expression and t is the maximum length of any type expression.

Research paper thumbnail of A practical approach to type-sensitive parsing

Computer Languages, 1994

Type-sensitive parsing of expressions is context-sensitive parsing based on type. Previous resear... more Type-sensitive parsing of expressions is context-sensitive parsing based on type. Previous research reported a general class of algorithms for type-sensitive parsing. Unfortunately, these algorithms are impractical for languages that infer type. This paper describes a related algorithm which is much more efficient--its incremental cost is linear (with a small constant) in the length of the expression, even when types must be deduced. Our method can be applied to any statically typed language solving a variety of problems associated with conventional parsing techniques including problems with operator precedence and the interaction between infix operators and higher order functions.

Research paper thumbnail of Falafel: Arrays in a Functional Language

Arrays, Functional Languages, and Parallel Systems, 1991

Research paper thumbnail of A synthesis of type-checking and parsing

Computer Languages, 1993

Al~traet--The context-free grammars and parsers conventionally used to define and interpret concr... more Al~traet--The context-free grammars and parsers conventionally used to define and interpret concrete syntax lead to constrained expression notations. This paper gives algorithms which support less constrained, more intuitive notations. These algorithms can be viewed as context-sensitive parsers, where the context that is taken into account is the type structure of the expression. Or they can be viewed as type checkers that determine the form of the abstract syntax. The approach taken seamlessly integrates parsing and type-checking in the formalism of Markov algorithms. The interpretation of concrete syntax by these algorithms is unambiguous. At least one algorithm, DMA-T, is practical; its worst case time is O(tn 2) where n is the length of the expression and t is the maximum length of any type expression.

Research paper thumbnail of A practical approach to type-sensitive parsing

Computer Languages, 1994

Type-sensitive parsing of expressions is context-sensitive parsing based on type. Previous resear... more Type-sensitive parsing of expressions is context-sensitive parsing based on type. Previous research reported a general class of algorithms for type-sensitive parsing. Unfortunately, these algorithms are impractical for languages that infer type. This paper describes a related algorithm which is much more efficient--its incremental cost is linear (with a small constant) in the length of the expression, even when types must be deduced. Our method can be applied to any statically typed language solving a variety of problems associated with conventional parsing techniques including problems with operator precedence and the interaction between infix operators and higher order functions.

Log In