Results 1 - 10
of
40
Adaptive Page Replacement Based on Memory Reference Behavior
, 1997
"... As disk performance continues to lag behind that of memory systems and processors, virtual memory management becomes increasingly important for overall system performance. In this paper we study the page reference behavior of a collection of memory-intensive applications, and propose a new virtual m ..."
Abstract
-
Cited by 66 (1 self)
- Add to MetaCart
As disk performance continues to lag behind that of memory systems and processors, virtual memory management becomes increasingly important for overall system performance. In this paper we study the page reference behavior of a collection of memory-intensive applications, and propose a new virtual memory page replacement algorithm, SEQ. SEQ detects long sequences of page faults and applies most-recently-used replacement to those sequences. Simulations show that for a large class of applications, SEQ performs close to the optimal replacement algorithm, and significantly better than Least-Recently-Used (LRU). In addition, SEQ performs similarly to LRU for applications that do not exhibit sequential faulting.
Notable design patterns for domain-specific languages
, 2001
"... The realisation of domain-specific languages (DSL DSLs) differs in fundamental ways from that of traditional programming languages. We describe eight recurring patterns that we have identified as being used for DSL design and implementation. Existing languages can be extended, restricted, partially ..."
Abstract
-
Cited by 36 (5 self)
- Add to MetaCart
The realisation of domain-specific languages (DSL DSLs) differs in fundamental ways from that of traditional programming languages. We describe eight recurring patterns that we have identified as being used for DSL design and implementation. Existing languages can be extended, restricted, partially used, or become hosts for DSLs. DSL Simple DSLs DSL can be implemented by lexical processing. In addition, DSLs DSL can be used to create front-ends to existing systems or to express complicated data structures. Finally, DSLs DSL can be combined using process pipelines. The patterns described form a pattern language that can be used as a building block for a systematic
Synthesis of Custom Processors based on Extensible Platforms
- In ICCAD
, 2002
"... E#ciency and flexibility are critical, but often conflicting, design goals in embedded system design. The recent emergence of extensible processors promises a favorable tradeo# between e#- ciency and flexibility, while keeping design turnaround times short. Current extensible processor design flows ..."
Abstract
-
Cited by 25 (2 self)
- Add to MetaCart
E#ciency and flexibility are critical, but often conflicting, design goals in embedded system design. The recent emergence of extensible processors promises a favorable tradeo# between e#- ciency and flexibility, while keeping design turnaround times short. Current extensible processor design flows automate several tedious tasks, but typically require designers to manually select the parts of the program that are to be implemented as custom instructions. In this work, we describe an automatic methodology to select custom instructions to augment an extensible processor, in order to maximize its e#ciency for a given application program. We demonstrate that the number of custom instruction candidates grows rapidly with program size, leading to a large design space, and that the quality (speedup) of custom instructions varies significantly across this space, motivating the need for the proposed flow. Our methodology features cost functions to guide the custom instruction selection process, as well as static and dynamic pruning techniques to eliminate inferior parts of the design space from consideration. Further, we employ a two-stage process, wherein a limited number of promising instruction candidates are first selected, and then evaluated in more detail through cycle-accurate instruction set simulation and synthesis of the corresponding hardware, to identify the custom instruction combinations that result in the highest program speedup or maximize speedup under a given area constraint.
Side-effect removal transformation
- In 9 th IEEE International Workshop on Program Comprehension (IWPC'01
, 2001
"... Abstract A side effect is any change in program state that occurs as a by-product of the evaluation of an expression. Side effects are often thought to impede program comprehension and to lead to complex, poorly understood and occasionally undefined semantics. Side-Effect Removal Transformation (SER ..."
Abstract
-
Cited by 15 (10 self)
- Add to MetaCart
Abstract A side effect is any change in program state that occurs as a by-product of the evaluation of an expression. Side effects are often thought to impede program comprehension and to lead to complex, poorly understood and occasionally undefined semantics. Side-Effect Removal Transformation (SERT) improves comprehension by rewriting a program p which may contain side effects into a semantically equivalent program p0 which is guaranteed to be side-effect free. This paper introduces the SERT approach to the side-effect problem, briefly reporting initial experience with an implementation of SERT for C programs called Linsert1. 1
Using Sgrep for Querying Structured Text Files
, 1996
"... Sgrep is a Unix tool for searching the contents of text files. Sgrep implements an algebra of unrestricted text fragments called regions. The algebra allows the retrieval of document components, represented as regions, based on conditions on their relative containment and ordering. This simple yet p ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
Sgrep is a Unix tool for searching the contents of text files. Sgrep implements an algebra of unrestricted text fragments called regions. The algebra allows the retrieval of document components, represented as regions, based on conditions on their relative containment and ordering. This simple yet powerful model is suitable for querying structured document formats like electronic mail, RTF, LaTeX, HTML, or SGML documents. We describe the sgrep query language and give examples of its use. Especially, we explain how sgrep can be used for querying and assembling SGML documents. Keywords: Text search tools, structured documents, SGML. 1 Introduction Every-day data processing creates large amounts of structured documents that have a more or less regular structure. Familiar examples of such structured documents include electronic mail, Usenet news, program source code, HTML pages, and SGML documents. Users seldom bother to index or to store such volatile texts in advanced information retr...
Stochastic Text Generation
"... This paper suggests why the statistical revolution has left Natural Language Generation (NLG) largely untouched, but identies areas where interacting constraints are hard to model by traditional methods, and where probabilistic models have something to oer. An interesting discourse phenomenon is dis ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
This paper suggests why the statistical revolution has left Natural Language Generation (NLG) largely untouched, but identies areas where interacting constraints are hard to model by traditional methods, and where probabilistic models have something to oer. An interesting discourse phenomenon is discussed, to show how it might be dealt with using one of the handful of existing statistical approaches to NLG, and to identify diculties with their evaluation functions. The paper then argues that the maximum entropy framework oers a better approach, and suggests how it could be applied to problems in generation, using two heuristics to help an evaluator exploit features which would improve the quality of output language.
Amorphous Procedure Extraction
- IN SCAM
, 2004
"... The procedure extraction problem is concerned with the meaning preserving formation of a procedure from a (not necessarily contiguous) selected set of statements. Previous approaches to the problem have used dependence analysis to identify the non-selected statements which must be `promoted' (also s ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
The procedure extraction problem is concerned with the meaning preserving formation of a procedure from a (not necessarily contiguous) selected set of statements. Previous approaches to the problem have used dependence analysis to identify the non-selected statements which must be `promoted' (also selected) in order to preserve semantics. All previous approaches to the problem have been syntax preserving. This paper shows
Modular Information Hiding and Type-Safe Linking for C
, 2007
"... This paper presents CMOD, a novel tool that provides a sound module system for C. CMOD works by enforcing a set of four rules that are based on principles of modular reasoning and on current programming practice. CMOD’s rules flesh out the convention that.h header files are module interfaces and.c s ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
This paper presents CMOD, a novel tool that provides a sound module system for C. CMOD works by enforcing a set of four rules that are based on principles of modular reasoning and on current programming practice. CMOD’s rules flesh out the convention that.h header files are module interfaces and.c source files are module implementations. Although this convention is well-known, developing CMOD’s rules revealed there are many subtleties in applying the basic pattern correctly. We have proven formally that CMOD’s rules enforce both information hiding and type-safe linking. We evaluated CMOD on a number of benchmarks, and found that most programs obey CMOD’s rules, or can be made to with minimal effort, while rule violations reveal brittle coding practices including numerous information hiding violations and occasional type errors.
A Post-Placement Side-Effect Removal Algorithm
- In IEEE International Conference on Software Maintenance (ICSM 2002
, 2002
"... Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance.

