Tangible Functional Programming
Google Tech Talks
November, 7 2007
ABSTRACT
We present a user-friendly approach to unifying program creation and execution, based on a notion of "tangible values" (TVs), which are visual and interactive manifestations of pure values, including functions. Programming happens by gestural composition of TVs. Our goal is to give end-users the ability to create parameterized, composable content without imposing the usual abstract and linguistic working style of programmers. We hope that such a system will put the essence of programming into the hands of many more people, and in particular people with artistic/visual creative style.
In realizing this vision, we develop algebras for visual presentation and for "deep" function application, where function and argument may both be nested within a structure of tuples, functions, etc. Composition gestures are translated into chains of combinators that act simultaneously on statically typed values and their visualizations.
Speaker: Conal Elliott
Most of my research is aimed at supporting the creation of interactive synthetic media content, including computer animation, human-computer interaction, images, 2D and 3D geometry, and programmable shaders. In all cases, I aim to preserve or improve on the flexibility and performance of mainstream programming approaches, while greatly simplifying the creation process.
Synthetic media programs are almost always implemented in sequential, imperative (often object-oriented) languages. My research explores use of declarative languages, resulting in much simpler and more reusable and composable programs. These languages are also more amenable to execution on parallel architectures such as modern graphics processors, because declarative languages abstract away from order of execution, removing the accidental sequentiality found in imperative programs. Even on sequential machines, declarative formulations have much simpler mathematical semantics, which facilitates automatic optimization. They also tend to be spatially and temporally continuous (resolution-independent), allowing them to adapt naturally to machines with different speeds and display resolutions.
After exploring explicit programming of synthetic media content for several years, I'm now also keenly interested in supporting artists. The goal of my new new research agenda is to give artists access to the expressive power of computers and programming languages, while retaining an artist's working style. I mean "artist" in a broad sense, in contrast to the verbal and sequential style of an engineer. (I don't mean to suggest that people fit neatly into these two categories.) My ideal audience includes graphic designers, musicians, and children -- really, the playful and curious in all of us.
This abstract has 2796
This abstract has 2820
Видео Tangible Functional Programming канала GoogleTechTalks
November, 7 2007
ABSTRACT
We present a user-friendly approach to unifying program creation and execution, based on a notion of "tangible values" (TVs), which are visual and interactive manifestations of pure values, including functions. Programming happens by gestural composition of TVs. Our goal is to give end-users the ability to create parameterized, composable content without imposing the usual abstract and linguistic working style of programmers. We hope that such a system will put the essence of programming into the hands of many more people, and in particular people with artistic/visual creative style.
In realizing this vision, we develop algebras for visual presentation and for "deep" function application, where function and argument may both be nested within a structure of tuples, functions, etc. Composition gestures are translated into chains of combinators that act simultaneously on statically typed values and their visualizations.
Speaker: Conal Elliott
Most of my research is aimed at supporting the creation of interactive synthetic media content, including computer animation, human-computer interaction, images, 2D and 3D geometry, and programmable shaders. In all cases, I aim to preserve or improve on the flexibility and performance of mainstream programming approaches, while greatly simplifying the creation process.
Synthetic media programs are almost always implemented in sequential, imperative (often object-oriented) languages. My research explores use of declarative languages, resulting in much simpler and more reusable and composable programs. These languages are also more amenable to execution on parallel architectures such as modern graphics processors, because declarative languages abstract away from order of execution, removing the accidental sequentiality found in imperative programs. Even on sequential machines, declarative formulations have much simpler mathematical semantics, which facilitates automatic optimization. They also tend to be spatially and temporally continuous (resolution-independent), allowing them to adapt naturally to machines with different speeds and display resolutions.
After exploring explicit programming of synthetic media content for several years, I'm now also keenly interested in supporting artists. The goal of my new new research agenda is to give artists access to the expressive power of computers and programming languages, while retaining an artist's working style. I mean "artist" in a broad sense, in contrast to the verbal and sequential style of an engineer. (I don't mean to suggest that people fit neatly into these two categories.) My ideal audience includes graphic designers, musicians, and children -- really, the playful and curious in all of us.
This abstract has 2796
This abstract has 2820
Видео Tangible Functional Programming канала GoogleTechTalks
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![OSCON 2013: "Functional Thinking" - Neal Ford](https://i.ytimg.com/vi/7aYS9PcAITQ/default.jpg)
![Brian Beckman: Don't fear the Monad](https://i.ytimg.com/vi/ZhuHCtR3xq8/default.jpg)
!["The Clean Code Talks -- Inheritance, Polymorphism, & Testing"](https://i.ytimg.com/vi/4F72VULWFvc/default.jpg)
![Philip Wadler and Erik Meijer: On Programming Language Theory and Practice](https://i.ytimg.com/vi/9SBR_SnrEiI/default.jpg)
![Lambda Jam 2015 - Conal Elliott - A More Elegant Specification for FRP #YOWLambdaJam](https://i.ytimg.com/vi/teRC_Lf61Gw/default.jpg)
![A 12-year-old app developer | Thomas Suarez](https://i.ytimg.com/vi/Fkd9TWUtFm0/default.jpg)
![Stop Writing Classes](https://i.ytimg.com/vi/o9pEzgHorH0/default.jpg)
![The Simple Essence of Automatic Differentiation - Conal Elliott](https://i.ytimg.com/vi/ne99laPUxN4/default.jpg)
![Morten Kromberg, CTO, Dyalog Ltd. | Talks at Google](https://i.ytimg.com/vi/PlM9BXfu7UY/default.jpg)
![The Post JavaScript Apocalypse - Douglas Crockford](https://i.ytimg.com/vi/NPB34lDZj3E/default.jpg)
![How To Design A Good API and Why it Matters](https://i.ytimg.com/vi/aAb7hSCtvGw/default.jpg)
![YOW! Lambda Jam 2017 Conal Elliott - Teaching New Tricks to Old Programs #YOWLambdaJam](https://i.ytimg.com/vi/vzLK_xE9Zy8/default.jpg)
![Functional Programming with Java 8](https://i.ytimg.com/vi/Ee5t_EGjv0A/default.jpg)
![GOTO 2016 • Small Is Beautiful • Kevlin Henney](https://i.ytimg.com/vi/B3b4tremI5o/default.jpg)
![Practical Common Lisp](https://i.ytimg.com/vi/VeAdryYZ7ak/default.jpg)
![Functional programming design patterns by Scott Wlaschin](https://i.ytimg.com/vi/E8I19uA-wGY/default.jpg)
![Lambda Jam 2015 - Conal Elliott - The Essence and Origins of Functional Reactive Programming](https://i.ytimg.com/vi/j3Q32brCUAI/default.jpg)
![Ideas about a new programming language for games.](https://i.ytimg.com/vi/TH9VCN6UkyQ/default.jpg)
![Functional programming patterns for the non-mathematician (cut)](https://i.ytimg.com/vi/AvgwKjTPMmM/default.jpg)
![Programming Paradigms - Computerphile](https://i.ytimg.com/vi/sqV3pL5x8PI/default.jpg)