Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Making Hybrid Languages: A Recipe (2403.01335v1)

Published 2 Mar 2024 in cs.PL and cs.HC

Abstract: The dominant programming languages support only linear text to express ideas. Visual languages offer graphical representations for entire programs, when viewed with special tools. Hybrid languages, with support from existing tools, allow developers to express their ideas with a mix of textual and graphical syntax tailored to an application domain. This mix puts both kinds of syntax on equal footing and, importantly, the enriched language does not disrupt a programmer's typical workflow. This paper presents a recipe for equipping existing textual programming languages as well as accompanying IDEs with a mechanism for creating and using graphical interactive syntax. It also presents the first hybrid language and IDE created using the recipe.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (40)
  1. Adobe. Adobe dreamweaver cc help, 2019. URL https://helpx.adobe.com/pdf/dreamweaver_reference.pdf.
  2. Adding interactive visual syntax to textual code. Proc. ACM Program. Lang., 4(OOPSLA), nov 2020. doi: 10.1145/3428290. URL https://doi.org/10.1145/3428290.
  3. Jeremy Ashkenas. Observable: The user manual, 2019. URL https://observablehq.com/@observablehq/user-manual.
  4. Putting in all the stops: Execution control for javascript. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, page 30–45, New York, NY, USA, 2018. Association for Computing Machinery. ISBN 9781450356985. doi: 10.1145/3192366.3192370. URL https://doi.org/10.1145/3192366.3192370.
  5. SandBlocks: Integration Visueller and Textueller Programmelemente in Live-Programmiersysteme, volume 132. Universitätsverlag Potsdam, 2020.
  6. Deep Into Pharo. Square Bracket Associates, 2013.
  7. Maple programming guide, 2012.
  8. Programmatic and direct manipulation, together at last. SIGPLAN Not., 51(6):341–354, jun 2016. ISSN 0362-1340. doi: 10.1145/2980983.2908103. URL https://doi.org/10.1145/2980983.2908103.
  9. Macros that work. POPL ’91, page 155–162, 1991. doi: 10.1145/99583.99607. URL https://doi.org/10.1145/99583.99607.
  10. Oh lord, please don’t let contracts be misunderstood (functional pearl). In Jacques Garrigue, Gabriele Keller, and Eijiro Sumii, editors, Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, Nara, Japan, September 18-22, 2016, pages 117–131, 2016. doi: 10.1145/2951913.2951930.
  11. A. A diSessa and H. Abelson. Boxer: A reconstructible computational medium. Commun. ACM, 29(9):859–868, sep 1986. ISSN 0001-0782. doi: 10.1145/6592.6595. URL https://doi.org/10.1145/6592.6595.
  12. Expressive programs through presentation extension. In Proceedings of the 6th International Conference on Aspect-Oriented Software Development, AOSD ’07, page 73–84, New York, NY, USA, 2007. Association for Computing Machinery. ISBN 1595936157. doi: 10.1145/1218563.1218573. URL https://doi.org/10.1145/1218563.1218573.
  13. The grail language and operations. Technical Report RM-6001-ARPA, Rand. Corp. Santa Monica CA, 1969a.
  14. The grail project: An experiment in man-machine communications. Technical Report RM-5999-ARPA, Rand. Corp. Santa Monica CA, 1969b.
  15. Growing a language environment with editor libraries. SIGPLAN Not., 47(3):167–176, oct 2011. ISSN 0362-1340. doi: 10.1145/2189751.2047891. URL https://doi.org/10.1145/2189751.2047891.
  16. Gerald Farin. Curves and Surfaces for Computer-Aided Geometric Design: A Practical Guide. Elsevier, 2014.
  17. Programs as visual, interactive documents. Software: Practice and Experience, 44(8):911–930, 2014.
  18. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., USA, 1983. ISBN 0201113716.
  19. D. Goodman. The Complete Hypercard Handbook. Bantam Books, Inc., USA, 1988. ISBN 055334577X.
  20. Bringing ”no ceiling” to scratch: Can one language serve kids and computer scientists? Proc. Constructionism, pages 1–10, 2010.
  21. Deuce: A lightweight user interface for structured editing. In Proceedings of the 40th International Conference on Software Engineering, ICSE ’18, page 654–664, New York, NY, USA, 2018. Association for Computing Machinery. ISBN 9781450356381. doi: 10.1145/3180155.3180165. URL https://doi.org/10.1145/3180155.3180165.
  22. The lively kernel a self-supporting system on a web page. In Robert Hirschfeld and Kim Rose, editors, Self-Sustaining Systems, pages 31–50, Berlin, Heidelberg, 2008. Springer Berlin Heidelberg. ISBN 978-3-540-89275-5.
  23. The spoofax language workbench: Rules for declarative specification of languages and ides. SIGPLAN Not., 45(10):444–463, oct 2010. ISSN 0362-1340. doi: 10.1145/1932682.1869497. URL https://doi.org/10.1145/1932682.1869497.
  24. Webstrates: Shareable dynamic media. In Proceedings of the 28th Annual ACM Symposium on User Interface Software and Technology, UIST ’15, page 280–290, New York, NY, USA, 2015. Association for Computing Machinery. ISBN 9781450337793. doi: 10.1145/2807442.2807446. URL https://doi.org/10.1145/2807442.2807446.
  25. Barista: An implementation framework for enabling new tools, interaction techniques and views in code editors. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’06, page 387–396, New York, NY, USA, 2006. Association for Computing Machinery. ISBN 1595933727. doi: 10.1145/1124772.1124831. URL https://doi.org/10.1145/1124772.1124831.
  26. Jeffrey Kodosky. Labview. Proc. ACM Program. Lang., 4(HOPL), jun 2020. doi: 10.1145/3386328. URL https://doi.org/10.1145/3386328.
  27. Hygienic macro expansion. LFP ’86, pages 151–161, 1986. doi: 10.1145/319838.319859.
  28. An introduction to morphic: The squeak user interface framework. Squeak: OpenPersonal Computing and Multimedia, 2001.
  29. Microsoft. Office and sharepoint development in visual studio, 2019. URL https://docs.microsoft.com/en-us/visualstudio/vsto/office-and-sharepoint-development-in-visual-studio?view=vs-2017.
  30. Active code completion. In 2012 34th International Conference on Software Engineering (ICSE), pages 859–869, 2012. doi: 10.1109/ICSE.2012.6227133.
  31. Filling typed holes with live GUIs. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, page 511–525, New York, NY, USA, 2021. Association for Computing Machinery. ISBN 9781450383912. doi: 10.1145/3453483.3454059. URL https://doi.org/10.1145/3453483.3454059.
  32. Jetbrains mps as a tool for extending java. In Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ ’13, page 165–168, New York, NY, USA, 2013. Association for Computing Machinery. ISBN 9781450321112. doi: 10.1145/2500828.2500846. URL https://doi.org/10.1145/2500828.2500846.
  33. IPython: A system for interactive scientific computing. Computing in Science & Engineering, 9(3):21–29, 2007. doi: 10.1109/MCSE.2007.53.
  34. Browsix: Bridging the gap between unix and the browser. SIGPLAN Not., 52(4):253–266, apr 2017. ISSN 0362-1340. doi: 10.1145/3093336.3037727. URL https://doi.org/10.1145/3093336.3037727.
  35. Codestrates: Literate computing with webstrates. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, UIST ’17, page 715–725, New York, NY, USA, 2017. Association for Computing Machinery. ISBN 9781450349819. doi: 10.1145/3126594.3126642. URL https://doi.org/10.1145/3126594.3126642.
  36. Scratch: Programming for all. Commun. ACM, 52(11):60–67, nov 2009. ISSN 0001-0782. doi: 10.1145/1592761.1592779. URL https://doi.org/10.1145/1592761.1592779.
  37. Intentional software. SIGPLAN Not., 41(10):451–464, oct 2006. ISSN 0362-1340. doi: 10.1145/1167515.1167511. URL https://doi.org/10.1145/1167515.1167511.
  38. Supporting diverse notations in mps’ projectional editor. In GEMOC, pages 7–16, 2014.
  39. mbeddr: An extensible c-based programming language and ide for embedded systems. In Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH ’12, page 121–140, New York, NY, USA, 2012. Association for Computing Machinery. ISBN 9781450315630. doi: 10.1145/2384716.2384767. URL https://doi.org/10.1145/2384716.2384767.
  40. Stephen Wolfram. The Mathematica Book. Cambridge University Press, 1988.

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com

Tweets

HackerNews

  1. Making Hybrid Languages: A Recipe (2 points, 0 comments)