ABSTRACT
We present a language with all the power of abstraction and the simplicity of two fundamental relations: substitution and categorization. With a graphic symbol representing each one of them, we created a playful visual programming environment aimed at teaching with high expressive power. This environment includes tools to inspect the program execution and a console to try visual expressions. This is achieved without resorting to text, since the symbols are user-defined drawings. To address complex problems, the language offers another set of tools to define text-based programs. Here we show a functional prototype of our rule-based, general-purpose declarative programming language.
Supplemental Material
Available for Download
- Harold Abelson and Gerald Jay Sussman. 1996. Structure and interpretation of computer programs.. The MIT Press. Google ScholarDigital Library
- Valentino Braitenberg. 1986. Vehicles: Experiments in synthetic psychology.. The MIT Press. Google Scholar
- Leo Brodie. 2004. Thinking forth.. Punchy Pub. Google Scholar
- Gabriele Contessa. 2013. Models and Maps: An Essay on Epistemic Representation. unpublished manuscript, Carleton University, Ottawa, ON.. https://philarchive.org/archive/CONMAM-9 Google Scholar
- Ole-Johan Dahl. 2004. The birth of object orientation: the simula languages.. From Object-Orientation to Formal Methods. Lecture Notes in Computer Science., 2635 (2004), 15–25. https://doi.org/110.1007/978-3-540-39993-3_3 Google Scholar
- Mark Dorling and Dave White. 2015. Scratch: A Way to Logo and Python.. SIGCSE ’15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 191–196. https://doi.org/10.1145/2676723.2677256 Google ScholarDigital Library
- Pierre-André Dreyfuss and Serge Stinckwich. 2008. V-Toys: An Experiment in Adding Visual Tiles to EToys. In Sixth International Conference on Creating, Connecting and Collaborating through Computing (C5 2008). 165–171. https://doi.org/10.1109/C5.2008.22 Google ScholarDigital Library
- Jonathan Edwards. 2005. Subtext: uncovering the simplicity of programming.. OOPSLA ’05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 505–518. https://doi.org/10.1145/1094811.1094851 Google ScholarDigital Library
- Hilaire Fernandes, Ken Dickey, and Juan Vuletich. 2020. The Cuis-Smalltalk book.. https://github.com/Cuis-Smalltalk/TheCuisBook Google Scholar
- Brian Harvey and Jens Mönig. 2015. Lambda in blocks languages: Lessons learned. In 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond). 35–38. https://doi.org/10.1109/BLOCKS.2015.7368997 Google ScholarDigital Library
- Frederick Hayes-Roth. 1985. Rule-Based Systems. Commun. ACM, 28, 9 (1985), sep, 921–932. issn:0001-0782 https://doi.org/10.1145/4284.4286 Google ScholarDigital Library
- Hiroshi Ishii. 2008. The Tangible User Interface and Its Evolution. Commun. ACM, 51, 6 (2008), jun, 32–36. issn:0001-0782 https://doi.org/10.1145/1349026.1349034 Google ScholarDigital Library
- Kenneth E. Iverson. 1965. A programming language.. AIEE-IRE ’62 (Spring): Proceedings of the May 1-3, 1962, spring joint computer conference, 345–351. https://doi.org/10.1145/1460833.1460872 Google ScholarDigital Library
- Alan Kay. 2005. Squeak etoys, children and learning.. Viewpoints Research Institute, http://www.vpri.org/pdf/rn2005001_learning.pdf Google Scholar
- Patrick L. Kohl, Neethu Thulasi, Benjamin Rutschmann, Ebi A. George, Ingolf Steffan-Dewenter, and Axel Brockmann. 2020. Adaptive evolution of honeybee dance dialects.. Proceedings of the Royal Society B, 287, 20200190 (2020), 1–9. https://doi.org/10.1098/rspb.2020.0190 Google ScholarCross Ref
- Thaddeus J. Kowalski and Leon S. Levy. 1996. Rule-based programming. AT&T, USA. Google Scholar
- George Lakoff. 1987. Women, fire, and dangerous things. What categories reveal about the mind.. University of Chicago Press. https://doi.org/10.7208/chicago/9780226471013.001.0001 Google ScholarCross Ref
- 2022. mBblock Editor. https://ide.mblock.cc/ Google Scholar
- John H. Maloney and Randall B. Smith. 1995. Directness and liveness in the morphic user interface construction environment. In Proceedings of the 8th annual ACM symposium on User interface and software technology. 21–28. https://doi.org/10.1145/215585.215636 Google ScholarDigital Library
- Fred Martin. 1996. Kids learning engineering science using LEGO and the programmable brick. Proc of AERA. Google Scholar
- Agustín Rafael Martínez. 2020. Integración del conocimiento científico y materialismo dialéctico.. Hic Rhodus. Crisis Capitalista, Polémica y Controversias, 19 (2020), 23–43. https://publicaciones.sociales.uba.ar/index.php/hicrhodus/article/download/6161/5117 Google Scholar
- Agustín Rafael Martínez. 2021. Representación simbólica y materialismo dialéctico. De la comunicación simbólica a la programación de computadoras.. Hic Rhodus. Crisis Capitalista, Polémica y Controversias, 20 (2021), 59–78. https://publicaciones.sociales.uba.ar/index.php/hicrhodus/article/download/6644/5553 Google Scholar
- Sean McDirmid. 2007. Living it up with a live programming language.. OOPSLA ’07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications, 623–638. https://doi.org/10.1145/1297027.1297073 Google ScholarDigital Library
- Charles H. Moore. 1974. FORTH: a new way to program a mini computer.. Astronomy and Astrophysics Supplement Series, 15, 497 (1974). Google Scholar
- Mark Noone and Aidan Mooney. 2018. Visual and textual programming languages: a systematic review of the literature.. Journal of Computers in Education, 5, 2 (2018), 149–174. https://doi.org/10.1007/s40692-018-0101-5 Google ScholarCross Ref
- Jelena Pisarov and Gyula Mester. 2019. Programming the mbot robot in school.. Proceedings of the International Conference and Workshop Mechatronics in Practice and Education, MechEdu. Google Scholar
- Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, and Yasmin Kafai. 2009. Scratch: Programming for All. Commun. ACM, 52, 11 (2009), nov, 60–67. issn:0001-0782 https://doi.org/10.1145/1592761.1592779 Google ScholarDigital Library
- Tim Sheard. 2004. Languages of the future.. OOPSLA ’04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, 116–119. https://doi.org/10.1145/1028664.1028711 Google ScholarDigital Library
- Antero Kyösti P Taivalsaari. 1997. Classes vs. Prototypes – Some Philosophical and Historical Observations. Journal of Object-Oriented Programming, 10, 7 (1997), Nov., 44–50. Google Scholar
- Larry Tesler. 2012. A Personal History of Modeless Text Editing and Cut/Copy-Paste. Interactions, 19, 4 (2012), jul, 70–75. issn:1072-5520 https://doi.org/10.1145/2212877.2212896 Google ScholarDigital Library
- David Ungar and Randall B. Smith. 1987. Self: The Power of Simplicity. SIGPLAN Not., 22, 12 (1987), dec, 227–242. issn:0362-1340 https://doi.org/10.1145/38807.38828 Google ScholarDigital Library
- Alessandro Warth, Takashi Yamamiya, Yoshiki Ohshima, and Scott Wallace. 2008. Toward A More Scalable End-User Scripting Language. In Sixth International Conference on Creating, Connecting and Collaborating through Computing (C5 2008). 172–178. https://doi.org/10.1109/C5.2008.33 Google ScholarDigital Library
Index Terms
- A Language Based on Two Relations between Symbols
Recommendations
The Domain-Specific Language Monaco and its Visual Interactive Programming Environment
VLHCC '07: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric ComputingMonaco is a domain-specific language for machine automation programming. It has been developed with the objective to empower domain experts with limited programming capabilities. Its main language features are an imperative notation for reactive systems,...
VAPE-3D: A 3D Visual Avatar-based Programming Environment
CSERC '22: Proceedings of the 11th Computer Science Education Research ConferenceVisual Programming Languages are a common vehicle to teach programming. Usually, these languages use two-dimensional blocks or diagrams to structure a program and some 3D versions have emerged as well. Often, the visualization of creating programs with ...
A minimal, extensible, drag-and-drop implementation of the C programming language
SIGITE '11: Proceedings of the 2011 conference on Information technology educationBlock languages are visual programming languages based on the metaphor of programming bricks. Block languages such as Scratch, StarLogo and Alice, are becoming fundamental tools to get children interested in computer programming. These environments and ...
Comments