×

zbMATH — the first resource for mathematics

Programming languages for interactive computing. (English) Zbl 1277.68045
Goldin, Dina (ed.) et al., Proceedings of the workshop on the foundations of interactive computation (FinCo 2007), Braga, Portugal, March 31, 2007. Amsterdam: Elsevier. Electronic Notes in Theoretical Computer Science 203, No. 3, 35-52 (2008).
Traditional programming languages are algorithmic: they are best suited to writing programs that acquire all their inputs before executing and only produce a result on termination. By contrast most applications are interactive: they maintain ongoing interactions with their environments. Modern systems address this incompatibility by manually extending the execution model of the host language to support interaction, usually by embedding an event-driven state management scheme which executes fragments of imperative code in response to interactions, the job of each executed fragment being to restore the internal consistency of the computation. The downside of this approach to interaction is that it relies heavily on mutable stores and side-effects and mixes application logic in with behaviour which is more properly the responsibility of an execution model. We describe a programming model called declarative interaction which supports interaction directly. The distinguishing feature of the model is its modal construal of state and interaction.
For the entire collection see [Zbl 1276.68017].
MSC:
68N15 Theory of programming languages
68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
68Q85 Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.)
Software:
Links; Haskell; MiniML
PDF BibTeX Cite
Full Text: DOI
References:
[1] Abadi, M.; Cardelli, L., A theory of objects, (1996), Springer-Verlag New York Inc. Secaucus, NJ, USA · Zbl 0876.68014
[2] Acar, U.A., G.E. Blelloch and R. Harper, Adaptive functional programming, in: POPL ’02: Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (2002), pp. 247-259 · Zbl 1322.68034
[3] Acar, U.A., G.E. Blelloch and R. Harper, Adaptive memoization, Technical Report CMU-CS-03-208, School of Computer Science, Carnegie Mellon University (2004)
[4] Achten, P. and M.J. Plasmeijer, Interactive functional objects in Clean, in: IFL ’97: Selected Papers from the 9th International Workshop on Implementation of Functional Languages (1998), pp. 304-321
[5] Bem, E.Z.; Rosenberg, J., An approach to implementing persistent computations, (), 189-200 · Zbl 1009.68681
[6] Brooks, F.P., No silver bullet: essence and accidents of software engineering, Computer, 20, 10-19, (1987)
[7] Cardelli, L., Wide area computation, (), 10-24
[8] Carlsson, M. and T. Hallgren, “Fudgets - Purely Functional Processes with applications to Graphical User Interfaces,” Ph.D. thesis, Chalmers University of Technology, Göteborg University (1998). URL http://www.cs.chalmers.se/ hallgren/Thesis/fudgets_thesis_color.ps.gz
[9] Collet, R., Laziness and declarative concurrency, in: 2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era: Back to Dynamicity, 18th European Conference on Object-Oriented Programming (ECOOP 2004), Oslo, Norway, 2004
[10] Cooper, E.; Lindley, S.; Wadler, P.; Yallop, J., Links: web programming without tiers, (2006)
[11] Courtney, A. and C. Elliott, Genuinely functional user interfaces, in: 2001 Haskell Workshop, 2001
[12] Creeger, M., Multicore CPUs for the masses, ACM queue, 3, (2005)
[13] Davies, R. and F. Pfenning, A modal analysis of staged computation, in: POPL ’96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (1996), pp. 258-270 · Zbl 1323.68107
[14] Demaine, E.D., J. Iacono and S. Langerman, Retroactive data structures, in: SODA ’04: Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms (2004), pp. 281-290 · Zbl 1317.68042
[15] Driscoll, J.R., N. Sarnak, D.D. Sleator and R.E. Tarjan, Making data structures persistent, in: STOC ’86: Proceedings of the eighteenth annual ACM symposium on Theory of computing (1986), pp. 109-121 · Zbl 0667.68026
[16] Finne, S. and S.L.P. Jones, Composing the user interface with Haggis, in: Advanced Functional Programming, Second International School-Tutorial Text (1996), pp. 1-37
[17] Fournet, C.; Gonthier, G., The join calculus: A language for distributed mobile programming, (), 268-332 · Zbl 1065.68071
[18] Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J., Design patterns: elements of reusable object-oriented software, Addison-wesley professional computing series, (1995), Addison-Wesley Boston, MA, USA
[19] ()
[20] Harris, T., S. Marlow, S. Peyton-Jones and M. Herlihy, Composable memory transactions, in: PPoPP ’05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (2005), pp. 48-60
[21] Hartline, J.D.; Hong, E.S.; Modht, A.E.; Pentney, W.R.; Rocke, E.C., Characterizing history independent data structures, () · Zbl 1065.68040
[22] Holyer, I. and D. Carter, Deterministic concurrency, in: K. Hammond and J. O’Donnell, editors, Proceedings of the 1993 Glasgow Workshop on Functional Programming (1994)
[23] Jones, S.L.P., A. Gordon and S. Finne, Concurrent Haskell, in: Conference Record of POPL ’96: The 23rdACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, 1996, pp. 295-308. URL citeseer.ist.psu.edu/jones96concurrent.html
[24] Jones, S.L.P. and P. Wadler, Imperative functional programming, in: POPL ’93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (1993), pp. 71-84
[25] Kobayashi, S., Monad as modality, in: NSL ’94: Proceedings of the first workshop on Non-standard logics and logical aspects of computer science (1997), pp. 29-74
[26] Lee, E.A., The problem with threads, Technical Report UCB/EECS-2006-1, EECS Department, University of California, Berkeley (2006) URL http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.html
[27] Michie, D., Memo functions and machine learning, Nature, 218, 19-22, (1968)
[28] Moseley, B.; Marks, P., Out of the TAR pit, (2006)
[29] Nanevski, A., Meta-programming with names and necessity, in: ICFP ’02: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming (2002), pp. 206-217 · Zbl 1322.68045
[30] Nanevski, A., From dynamic binding to state via modal possibility, in: PPDP ’03: Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming (2003), pp. 207-218
[31] Nordlander, J. and M. Carlsson, Reactive objects in a functional language – an escape from the evil “I”, in: Proceedings of the Third Haskell Workshop, 1997. URL http://www.cs.chalmers.se/ nordland/ohaskell/reactive.ps.gz
[32] Perera, R., J. Foster and G. Koch, A delta-driven execution model for semantic computing, in: OOPSLA ’05: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (2005), pp. 63-71
[33] Perlis, A.J., Epigrams on programming, SIGPLAN notices, 17, 7-13, (1982)
[34] Plaice, J., Multidimensional lucid: design, semantics and implementation, ()
[35] Shavit, N. and D. Touitou, Software transactional memory, in: PODC ’95: Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing (1995), pp. 204-213 · Zbl 1373.68178
[36] Van Roy, P.; Haridi, S., Concepts, techniques, and models of computer programming, (2004), The MIT Press Cambridge, MA, USA, URL
[37] Wegner, P., Interactive foundations of computing, Theoretical computer science, 192, 315-351, (1998), URL · Zbl 0897.68041
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.