Order-of-demand analysis for lazy languages

Young G. Park, Benjamin Goldberg

Research output: Contribution to journalArticle

Abstract

This paper presents a method for statically inferring a range of information including strictness, evaluation-order, and evaluation-status information in a higher-order polymorphically-typed lazy functional language. This method is based on a compile-time analysis called order-of-demand analysis, which provides safe information about the order in which the values of bound variables are demanded. The time complexity of the analysis is substantially less than that of other approaches such as path analysis [5] and compositional analysis [7] and comparable to that of strictness analysis.

Original languageEnglish (US)
Pages (from-to)343-348
Number of pages6
JournalInformation Processing Letters
Volume55
Issue number6
DOIs
StatePublished - Sep 29 1995

Fingerprint

Path Analysis
Evaluation
Time Complexity
Demand
Language
Higher Order
Range of data

Keywords

  • Applicative programming
  • Compilers
  • Design of algorithms
  • Formal semantics
  • Functional programming
  • Language processors
  • Programming languages

ASJC Scopus subject areas

  • Computer Science Applications
  • Information Systems
  • Signal Processing
  • Theoretical Computer Science
  • Computational Theory and Mathematics

Cite this

Order-of-demand analysis for lazy languages. / Park, Young G.; Goldberg, Benjamin.

In: Information Processing Letters, Vol. 55, No. 6, 29.09.1995, p. 343-348.

Research output: Contribution to journalArticle

@article{329907936ed641c2b2b85ee26a3b9469,
title = "Order-of-demand analysis for lazy languages",
abstract = "This paper presents a method for statically inferring a range of information including strictness, evaluation-order, and evaluation-status information in a higher-order polymorphically-typed lazy functional language. This method is based on a compile-time analysis called order-of-demand analysis, which provides safe information about the order in which the values of bound variables are demanded. The time complexity of the analysis is substantially less than that of other approaches such as path analysis [5] and compositional analysis [7] and comparable to that of strictness analysis.",
keywords = "Applicative programming, Compilers, Design of algorithms, Formal semantics, Functional programming, Language processors, Programming languages",
author = "Park, {Young G.} and Benjamin Goldberg",
year = "1995",
month = "9",
day = "29",
doi = "10.1016/0020-0190(95)00120-2",
language = "English (US)",
volume = "55",
pages = "343--348",
journal = "Information Processing Letters",
issn = "0020-0190",
publisher = "Elsevier",
number = "6",

}

TY - JOUR

T1 - Order-of-demand analysis for lazy languages

AU - Park, Young G.

AU - Goldberg, Benjamin

PY - 1995/9/29

Y1 - 1995/9/29

N2 - This paper presents a method for statically inferring a range of information including strictness, evaluation-order, and evaluation-status information in a higher-order polymorphically-typed lazy functional language. This method is based on a compile-time analysis called order-of-demand analysis, which provides safe information about the order in which the values of bound variables are demanded. The time complexity of the analysis is substantially less than that of other approaches such as path analysis [5] and compositional analysis [7] and comparable to that of strictness analysis.

AB - This paper presents a method for statically inferring a range of information including strictness, evaluation-order, and evaluation-status information in a higher-order polymorphically-typed lazy functional language. This method is based on a compile-time analysis called order-of-demand analysis, which provides safe information about the order in which the values of bound variables are demanded. The time complexity of the analysis is substantially less than that of other approaches such as path analysis [5] and compositional analysis [7] and comparable to that of strictness analysis.

KW - Applicative programming

KW - Compilers

KW - Design of algorithms

KW - Formal semantics

KW - Functional programming

KW - Language processors

KW - Programming languages

UR - http://www.scopus.com/inward/record.url?scp=28144436737&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=28144436737&partnerID=8YFLogxK

U2 - 10.1016/0020-0190(95)00120-2

DO - 10.1016/0020-0190(95)00120-2

M3 - Article

VL - 55

SP - 343

EP - 348

JO - Information Processing Letters

JF - Information Processing Letters

SN - 0020-0190

IS - 6

ER -