Entry Chitnis:1995:RTI from sigplan1990.bib

Last update: Thu Apr 12 03:37:15 MDT 2012                Valid HTML 3.2!

Index sections

Top | Symbols | Numbers | Math | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

BibTeX entry

@Article{Chitnis:1995:RTI,
  author =       "Sachin V. Chitnis and Manoranjan Satpathy and Sundeep
                 Oberoi",
  title =        "Rationalized Three Instruction Machine",
  journal =      j-SIGPLAN,
  volume =       "30",
  number =       "3",
  pages =        "94--102",
  month =        mar,
  year =         "1995",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:02 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/202529/p94-chitnis/",
  abstract =     "The declarative nature of functional programming
                 languages causes many difficulties in their efficient
                 implementation on conventional machines. The problem is
                 much harder when the language has non-strict (lazy)
                 semantics. Abstract machines serve as an intellectual
                 aid in bridging the semantic gap between such languages
                 and the conventional von Neumann architecture. However
                 they become more and more complex with time as
                 efficiency considerations force the instruction set of
                 the machine to grow in size. In this paper we explain
                 the phenomenon in context of the Three Instruction
                 Machine (TIM). We then define a rationalized
                 instruction set for TIM that allows us to view all
                 enhancements to TIM in a uniform way. This instruction
                 set is quite close to RISC instructions and clearly
                 identifies the key operations on closures. Translation
                 of functional programs to our rationalized instruction
                 set opens up scope for various local and global
                 optimizations. We illustrate this by showing how to
                 build control flow graphs and perform optimizations on
                 it. Lazy arguments in functional programs make it hard
                 to predict evaluation order statistically. We define
                 the notion of {\em pseudo-lazy\/} arguments to
                 statically expose the control flow information,
                 wherever possible, for doing better flow analysis.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci. and Eng., Indian Inst. of
                 Technol., Bombay, India",
  classification = "C1160 (Combinatorial mathematics); C4210L (Formal
                 languages and computational linguistics); C6110
                 (Systems analysis and programming); C6140B
                 (Machine-oriented languages); C6140D (High level
                 languages); C6150C (Compilers, interpreters and other
                 processors); C6150G (Diagnostic, testing, debugging and
                 evaluating systems)",
  confdate =     "22 Jan. 1995",
  conflocation = "San Francisco, CA, USA",
  confname =     "ACM SIGPLAN workshop on Intermediate representations,
                 January 22, 1995, San Francisco, CA",
  keywords =     "Abstract machines; Closures; Control flow graphs;
                 design; Efficiency considerations; Evaluation order;
                 Flow analysis; Functional program translation;
                 Functional programming languages; Global optimizations;
                 Instruction set; languages; Lazy semantics; Local
                 optimizations; Nonstrict semantics; performance;
                 Pseudo-lazy arguments; Rationalized instruction set;
                 Rationalized three instruction machine; RISC
                 instructions; Semantic gap; Static analysis; theory;
                 Von Neumann architecture",
  subject =      "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative (functional) languages.
                 {\bf D.1.1} Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.3.4}
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf D.2.1} Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications. {\bf C.0} Computer Systems
                 Organization, GENERAL, Instruction set design.",
  thesaurus =    "Computational linguistics; Data flow analysis; Data
                 flow graphs; Functional languages; Functional
                 programming; Instruction sets; Optimising compilers;
                 Reduced instruction set computing",
}

Related entries