| Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages, second edition. The MIT Press, 2001. |
....gradually introducing more sophisticated ones. This gives students a good understanding of practical programming. For example, object oriented programming is explained in terms of functional programming by adding explicit state. Textbooks that use this approach are Abelson et al. and its successors [1, 2, 15, 17]. However, these textbooks lack formal semantics and they leave out many important concepts. Modularity Component based programming inheritance concurrency Dataflow programming No race conditions Both eager and lazy Databases, relations Logic programming nondeterministic choice ....
....semantics that allows practicing programmers to reason about correctness and complexity at a high level of abstraction. We give an operational semantics for all kernel languages and axiomatic and logical semantics for those kernel languages for which it is appropriate. This is in contrast to [1, 2, 15], which define languages in terms of interpreters. Compared to giving a simple operational semantics, we find that using interpreters is obscure (since language features interact in nonobvious ways) and makes it harder to reason abstractly about program correctness and complexity. Our operational ....
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. The MIT Press, 1992.
....reason Propositions 1 and 2 hold is that in the application of an intuitionistic function, the argument cannot have any free linear variables. This has the e#ect of precluding upward continuations. In the procedures source language, a procedure (closure) is upward if it is returned or stored [13]. In the presence of other control behaviours, this definition must be altered accordingly. In the language with exceptions, for instance, a procedure raised as an exception is also upward. Hence, in cps a continuation is upward if it is thrown to another continuation. Note that we do not ....
Friedman, D. P., M. Wand, and C. T. Haynes: 1992, Essentials of Programming Languages. The MIT Press, McGraw-Hill Book Company, first edition.
....to avoid that name. We abandoned the representation of Code as a list, introducing a special sequencing operator. In such a way we introduced practically the CPS paradigms, and we signalled their use in the compilation, more restricted than in [15] or in hundreds of other works, see e.g. [16 18] but fairly suggestive. We returned later to it while discussing parsing and program transformations. Here we applied the following reasoning: Until now every instruction fetched its successor from the code list. But almost all the time the successor is known statically, during the code ....
D.P. Friedman, M. Wand, C.T. Haynes, Essentials of Programming Languages, MIT Press, (1992).
....for automatically offering its own services and resources to its inner agents and can subordinate its inner agents. Therefore, an agent can directly instruct its inner agents to move to another location. My protocols for agent migration transmit other mobile agents as first class objects [4], in the sense that mobile agents can be passed to and returned from other mobile agents as values. A container agent is still mobile and also can migrate its inner agents to their destinations. Therefore, mobile agents are introduced as the only constituent of my network architecture and my ....
D.P. Friedman, M. Wand, and C. T. Haynes, "Essentials of Programming Languages", MIT Press, 1992.
....Therefore, an agent can directly instruct its inner agents to move to another location. Agent D Agent C Agent E migration Agent C Agent A Agent D Agent E Figure 1. Agent hierarchy and inter agent migration. Our mobile agents can transmit other mobile agents as first class objects [3], in the sense that mobile agents can be passed to and returned from other mobile agents as values by their container agents. Such container agents are still mobile and thus can transport their inner agents to other agents. As a result, our framework allows various operations for mobile agents, ....
D.P. Friedman, M. Wand, and C. T. Haynes, "Essentials of Programming Languages", MIT Press, 1992.
....Programs also have different patterns of information flow. Broadly, there are two kinds of information, which are familiar to authors of interpreters and compilers: lexically updated and globally mutated information, which reside, respectively, in the lexical environment and in the mutable store [1, 12]. When we automatically generate code for parallel exploration, we must distinguish between these so there are multiple copies of the former, but only one of the latter. In a functional programming language such as ML [21] it is usually easy to distinguish between these two: by default ....
Friedman, D. P., M. Wand and C. T. Haynes. Essentials of Programming Languages. The MIT Press, Cambridge, MA, 1992.
....from Erlang programming style: in Erlang a receive means handle a message and then return, but erl receive means this process state is complete here is the next one. This is an important point for programming with Distel, and leads to writing Emacs processes in continuation passing style [5] [6] where what to do afterwards is given explicitly to erl receive instead of relying on the stack. Because erl receive doesn t return, and nor do functions that call it, they should only be tail called called as the last thing a function does. This rule is made explicit in Distel programs ....
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. MIT Press, Cambridge, MA, 1992.
....to Work Although we can define an animal specific zoo switch form that works with hand rolled data structures, we would certainly prefer a general define record form with a corresponding record switch dispatching form. Indeed, many such recorddeclaration extensions to Scheme have been implemented [10, 13, 21, 27], but such implementations rarely provide compile time checking for record switch clauses. In the same way that zoo match reports a syntax error when a clause has the wrong number of variables, record switch should trigger a syntax error when a clause mentions an undefined datatype or lists the ....
.... ) Find c name in table,returnp name . define (constructor field accessors c name) Find c name in table,returnf names . An alternative design is to put a set of record definitions together in a named datatype, so that missing clauses can be reported at compile time [10] as in ML. The Run Time module defines the tag and procedure generators: module Run Time MzScheme (provide (all defined) define counter 0) define (generate unique tag) set counter ( counter 1) counter) define (make record procs tag f names) Return multiple ....
D. P. Friedman, M. Wand, and C. P. Haynes. Essentials of Programming Languages. The MIT Press, Cambridge, Massachusetts, 2001.
....its own execution, and splicing in code at appropriate times. In AspectJ, the sequences that are observed are an abstraction of the call stack, and the patterns in the aspect that trigger the execution of new code refer to patterns in the call stack. A definitional interpreter (in the style of [11]) for this dynamic view of aspect weaving was described in a pioneering paper by Wand et al. 26] An alternative formal model can be found in [9] Naturally dynamic weaving is costly, and it is important to find more e#cient compilation strategies, and indeed AspectJ does implement one such ....
D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, second edition, 2001.
....reason Propositions 1 and 2 hold is that in the application of an intuitionistic function, the argument cannot have any free linear variables. This has the e ect of precluding upward continuations. In the procedures source language, a procedure (closure) is upward if it is returned or stored [13]. In the presence of other control behaviours, this de nition must be altered accordingly. In the language with exceptions, for instance, a procedure raised as an exception is also upward. Hence, in cps a continuation is upward if it is thrown to another continuation. Note that we do not ....
Friedman, D. P., M. Wand, and C. T. Haynes: 1992, Essentials of Programming Languages. The MIT Press, McGraw-Hill Book Company, rst edition.
....representing different models of AOP; AJD is intended to capture the As6 pectJ dynamic join point style of AOP. The relation between AJD and BASE is intended to model the relationship between AspectJ and Java. We implemented the base language and AJD using an interpreter in Scheme in the style of [FWH01] For the semantics, we have simplified BASE and AJD still further by removing types, classes, and objects from the language and by slightly simplifying the join point model; the details are listed in the appendix. While much has been left out, the language of the semantics still models ....
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. MIT Press, Cambridge, MA, second edition, 2001.
....the space leak in response to the call for papers for this special issue. The idea of short circuiting variable operands is derived from modelling callby reference and improves the execution for languages that use call by name and call by need. The short circuiting appears in Section 3. 8 of [FWH01]. Thanks to Olivier Danvy for urging us to submit this note. ....
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. MIT Press, Cambridge, MA, second edition, 2001. 5
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages, second edition. The MIT Press, 2001.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages, second edition. The MIT Press, 2001.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. The MIT Press and McGraw-Hill, 1991.
No context found.
D. P. Friedman, M. Wand, and C. T. Haynes, "Essentials of Programming Languages", MIT Press, 1992.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages, second edition. The MIT Press, 2001.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. MIT Press and McGraw-Hill, 1991.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. MIT Press and McGraw-Hill, 1992.
No context found.
Friedman, D. P., M. Wand, and C. T. Haynes: 1992, Essentials of Programming Languages. Cambridge, MA: The MIT Press.
No context found.
D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. The MIT Press, Cambridge, MA, second edition, 2001.
No context found.
Friedman, D. P., M. Wand and C. T. Haynes. Essentials of Programming Languages. The MIT Press, Cambridge, MA, 1992.
No context found.
D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, 1992.
No context found.
Friedman, D. P., Wand, M., and Haynes, C. T. Essentials of Programming Languages (2nd Edition).Cambridge, MA: MIT Press, 2001.
No context found.
Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. Essentials of Programming Languages. McGraw-Hill Book Co., New York, N.Y., second edition, 2001.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC