Daniel P. Friedman
Daniel Paul Friedman (born 1944) is a professor emeritus of Computer Science at Indiana University in Bloomington, Indiana. His research focuses on programming languages, and he is a prominent author in the field. With David Wise, Friedman wrote a highly influential paper on lazy programming, specifically on lazy streams ( ICALP 1976). The paper, entitled "Cons should not evaluate its arguments," is one of the first publications pushing for the exploration of a programming style with potentially infinite data structures and a form of programming that employs no computational effects (though programs may diverge). Over the 1970s, Friedman and Wise explored the topic in depth and also considered extensions to the world of parallel computing. In the 1980s, Friedman turned to the study of the Scheme programming language. He explored the use of macros for defining programming languages; with Eugene Kohlbecker, Matthias Felleisen, and Bruce Duba, he co-introduced the notion of ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
University Of Houston
The University of Houston (; ) is a Public university, public research university in Houston, Texas, United States. It was established in 1927 as Houston Junior College, a coeducational institution and one of multiple junior colleges formed in the first decades of the 20th century. In 1934, HJC was restructured as a four-year degree-granting institution and renamed University of Houston. In 1977, it became the founding member of the University of Houston System. Today, Houston is the List of universities in Texas by enrollment, university in Texas, awarding 11,350 degrees in 2024. As of 2024, it has a worldwide alumni base of 331,672. The university consists of fifteen colleges and an interdisciplinary honors college offering some 310-degree programs and enrolls approximately 37,000 undergraduate and 8,600 graduate students. The university's campus, which is primarily in southeast Houston, spans , with the inclusion of its two instructional sites located in Sugar Land and Katy ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
LISP And Functional Programming
The International Conference on Functional Programming (ICFP) is an annual academic conference in the field of computer science sponsored by the ACM SIGPLAN, in association with IFIP Working Group 2.8 (Functional Programming). The conference focuses on functional programming and related areas of programming languages, logic, compilers and software development. The ICFP was first held in 1996, replacing two biennial conferences: the Functional Programming and Computer Architecture (FPCA) and LISP and Functional Programming (LFP). The conference location alternates between Europe and North America, with occasional appearances in other continents. The conference usually lasts 3 days, surrounded by co-located workshops devoted to particular functional languages or application areas. The ICFP has also held an open annual programming contest since 1998, called the ICFP Programming Contest. History * 2012: 17th ACM SIGPLAN International Conference on Functional Programming in Copenha ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Indiana University Faculty
Indiana ( ) is a state in the Midwestern region of the United States. It borders Lake Michigan to the northwest, Michigan to the north and northeast, Ohio to the east, the Ohio River and Kentucky to the south and southeast, and the Wabash River and Illinois to the west. Nicknamed "the Hoosier State", Indiana is the 38th-largest by area and the 17th-most populous of the 50 states. Its capital and largest city is Indianapolis. Indiana was admitted to the Union as the 19th state on December 11, 1816. Indigenous resistance to American settlement was broken with defeat of the Tecumseh's confederacy in 1813. The new settlers were primarily Americans of British ancestry from the eastern seaboard and the Upland South, and Germans. After the Civil War, in which the state fought for the Union, natural gas attracted heavy industry and new European immigrants to its northern counties. In the first half of the 20th century, northern and central sections experienced a boom in ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Programming Language Researchers
Program (American English; also Commonwealth English in terms of computer programming and related activities) or programme (Commonwealth English in all other meanings), programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Programming (music), generating music electronically * Radio programming, act of scheduling content for radio * Synthesizer programmer, a person who develops the instrumentation for a piece of music Video or television * Broadcast programming, scheduling content for television * Program music, a type of art music that attempts to render musically an extra-musical narrative * Synthesizer patch or program, a synthesizer setting stored in memory * "Program", an instrumental song by Linkin Park from '' LP Underground Eleven'' * Programmer, a film on the lower half of a double feature bill; see B-movie ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Guy L
Guy or GUY may refer to: Personal names * Guy (given name) * Guy (surname) * That Guy (...), the New Zealand street performer Leigh Hart Places * Guy, Alberta, a Canadian hamlet * Guy, Arkansas, US, a city * Guy, Indiana, US, an unincorporated community * Guy, Kentucky, US, an unincorporated community * Guy, Texas, US, an unincorporated community * Guy Street, Montreal, Canada Arts and entertainment Films * ''Guy'' (1996 film), an American film starring Vincent D'Onofrio * ''Guy'' (2018 film), a French film starring Alex Lutz Music * Guy (band), an American R&B group ** ''Guy'' (Guy album), 1988 * Guy (Jayda G album), 2023 * " G.U.Y.", a 2014 song by Lady Gaga from the album ''Artpop'' Transport * Guy (sailing), rope to control a spinnaker on a sailboat * Air Guyane Express, ICAO code GUY * Guy Motors, a former British bus and truck builder * ''Guy'' (ship, 1933), see Boats of the Mackenzie River watershed * ''Guy'' (ship, 1961), see Boats of the Mac ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Essentials Of Programming Languages
''Essentials of Programming Languages'' (''EOPL'') is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. EOPL surveys the principles of programming languages from an operational perspective. It starts with an interpreter in Scheme for a simple functional core language similar to the lambda calculus and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say, store-passing style or continuation-passing style, can eliminate certain constructs from the language in which the interpreter is formulated. The second part of the book is dedicated to a systematic translation of the interpreter(s) into register machines. The transformations show how to eliminate hig ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Control Flow
In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an ''imperative programming'' language from a ''declarative programming'' language. Within an imperative programming language, a ''control flow statement'' is a statement that results in a choice being made as to which of two or more paths to follow. For non-strict functional languages, functions and language constructs exist to achieve the same result, but they are usually not termed control flow statements. A set of statements is in turn generally structured as a block, which in addition to grouping, also defines a lexical scope. Interrupts and signals are low-level mechanisms that can alter the flow of control in a way similar to a subroutine, but usually occur as a response to some external stimulus or event (that can occur asynchr ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Continuations
In computer science, a continuation is an abstract representation of the control state of a computer program. A continuation implements ( reifies) the program control state, i.e. the continuation is a data structure that represents the computational process at a given point in the process's execution; the created data structure can be accessed by the programming language, instead of being hidden in the runtime environment. Continuations are useful for encoding other control mechanisms in programming languages such as exceptions, generators, coroutines, and so on. The "current continuation" or "continuation of the computation step" is the continuation that, from the perspective of running code, would be derived from the current point in a program's execution. The term ''continuations'' can also be used to refer to first-class continuations, which are constructs that give a programming language the ability to save the execution state at any point and return to that point at a la ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Lambda Calculus
In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using variable Name binding, binding and Substitution (algebra), substitution. Untyped lambda calculus, the topic of this article, is a universal machine, a model of computation that can be used to simulate any Turing machine (and vice versa). It was introduced by the mathematician Alonzo Church in the 1930s as part of his research into the foundations of mathematics. In 1936, Church found a formulation which was #History, logically consistent, and documented it in 1940. Lambda calculus consists of constructing #Lambda terms, lambda terms and performing #Reduction, reduction operations on them. A term is defined as any valid lambda calculus expression. In the simplest form of lambda calculus, terms are built using only the following rules: # x: A ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Continuation Object
In the Scheme computer programming language, the procedure call-with-current-continuation, abbreviated call/cc, is used as a control flow operator. It has been adopted by several other programming languages. Taking a function f as its only argument, (call/cc f) within an expression is applied to the current continuation of the expression. For example ((call/cc f) e2) is equivalent to applying f to the current continuation of the expression. The current continuation is given by replacing (call/cc f) by a variable c bound by a lambda abstraction, so the current continuation is (lambda (c) (c e2)). Applying the function f to it gives the final result (f (lambda (c) (c e2))). As a complementary example, in an expression (e1 (call/cc f)), the continuation for the sub-expression (call/cc f) is (lambda (c) (e1 c)), so the whole expression is equivalent to (f (lambda (c) (e1 c))). In other words it takes a "snapshot" of the current control context or control state of the program as an ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Mitchell Wand
Mitchell Wand is a computer science professor at Northeastern University. He received his Ph.D. from Massachusetts Institute of Technology The Massachusetts Institute of Technology (MIT) is a Private university, private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of moder .... His research has centred on programming languages and he is a member of the Northeastern Programming Research Lab. He is also the co-author, with Daniel P. Friedman and Christopher T. Haynes, of '' Essentials of Programming Languages''. References External links Northeastern University Programming Research Lab HomepageMitchell Wand's Homepage at Northeastern University* American computer scientists Programming language researchers Living people Year of birth missing (living people) {{compu-scientist-stub ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Hygienic Macro
In computer science, hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, Nim, and Julia. The general problem of accidental capture was well known in the Lisp community before the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers to avoid the problem. Hygienic macros are a programmatic solution to the capture problem that is integrated into the macro expander. The term "hygiene" was coined in Kohlbecker et al.'s 1986 paper that introduced hygienic macro expansion, inspired by terminology used in mathematics. The hygiene problem Variable shadowing In programming languages that have non-hygienic macro systems, it is possible for existing variable bindings to be hidden from a macro by variable bindings that are created during its expansion. In ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |