<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Start coding in every human language?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ahila Ramesh Rajamani</string-name>
          <email>rameshra@mcmaster.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Narges Osmani</string-name>
          <email>narges.osmani@stablfoundation.org</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ye Jin ( Jinny) Kim</string-name>
          <email>kim630@mcmaster.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Janaya Paul</string-name>
          <email>janaya@kji-wikuomstudios.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christopher William Schankula</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juthada ( Jamie) Malakulang</string-name>
          <email>jamie.malakulang@stablfoundation.org</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christopher Kumar Anand</string-name>
          <email>anandc@mcmaster.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>PCWrEooUrckResehdoinpgs ISSNc1e6u1r-3w-0s0.o7r3g</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Kji-Wikuom Studios</institution>
          ,
          <addr-line>15 Medicine Trail Rd, Eskasoni, NS B1T 1K5</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>McMaster University</institution>
          ,
          <addr-line>1280 Main St W, Hamilton, ON L8S 4L8</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>STaBL Foundation</institution>
          ,
          <addr-line>69 Wolfe St, Louisbourg, NS B1C 2J7</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>26</lpage>
      <abstract>
        <p>Our outreach organization has introduced over 30,000 Grade 4 to 8 students to coding over the last decade. Using a process of iterative refinement, we have developed our own tools which work very well for introducing beginners to text-based coding for the first time. In our system, students start with ShapeCreator, an organized list of all the functions needed to create basic vector graphics, in which composing the functions is represented as a coloured ribbon threading through the function choices. However, because the coding language borrows words from English, there are many students who are not well-served by this system, including students who do not know English, and minority language students whose communities are trying to preserve their language and culture. In first case, young children, especially economically disadvantaged children, may not have been exposed to English, and this creates an additional barrier to learning. In the second case, minority language communities around the world trying to preserve their language and culture have set up immersion schools, but lack STEM material in their languages. This paper outlines the arguments available in the academic literature for teaching in children's native language and using code switching (intermingling languages) in bilingual populations. It demonstrates the technical feasibility of creating a Multi-Lingual ShapeCreator, and social viability of building a distributed team bringing together people from organizations embedded in Indigenous, cultural and educational communities. Finally, it outlines planned future work to extend code switching to advanced programming using a structure editor, and the communities preparing to test ShapeCreator in multiple languages around the world.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;computer science education</kwd>
        <kwd>introduction to programming</kwd>
        <kwd>native language education</kwd>
        <kwd>code switching</kwd>
        <kwd>computational thinking</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        To open up career pathways and prepare students for a rapidly evolving world, it is vital that all
children have a way into the world of software. The English-centric nature of programming languages
is a barrier to many of those children. Although significant block-based languages already support
language translation, we will argue that the literature already supports the extension of such support
to text-based languages, and present a roadmap for providing it through structure editors for
textbased languages. McMaster Start Coding (http://outreach.mcmaster.ca), a student service club, has
introduced 30,000 children from grades 4 to 8 to computer science over the last decade. To support
national and international expansion we established an associated charity, STaBL Foundation (https:
//stablfoundation.org). The charity is mandated to help all children, with a focus on children facing
barriers, including Indigenous children, refugees, and children around the world with low access to
technology. One way to increase access is to provide tools in multiple languages. Translation of the
programming language is already available in block coding (e.g., Scratch [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and Blocky), and we will
see that researchers have measured a positive impact of providing support in learners’ native languages.
We are not aware of other eforts to extend such support to text-based languages. Text-based languages
are generally supported by tools developed independently, including text editors, version control and
compilers. Coordinating translation across this ecosystem would be dificult. So our approach will be to
use a structure editor built into our Web-based Integrated Development Environment (WebIDE).
      </p>
      <p>
        Given the lack of specialist computer science (and even math) teachers at the primary level, our
tools are designed to require little background knowledge beyond basic geometry and number sense.
Conversely, children who follow our Algebraic Thinking curriculum [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] will be better prepared for high
school algebra, since that has been identified as a barrier to higher education pathways.
      </p>
      <p>In section 2, we outline the evidence in support of code switching (making use of multiple languages
in education) and native language support specifically for teaching programming. Then, in section 3,
we describe our existing Algebraic Thinking curriculum, how it influenced the design of our graphics
library and the presentation of that library in our exploration tool ShapeCreator. Next, in section 4, we
explain how our new ShapeCreator translates code into multiple languages. This is followed by section 5
describing how we plan to extend our approach to general programming using a structure editor, our
priorities on curriculum translation, and plans for evaluation. Finally, we present recommendations for
educators in section 6.</p>
      <sec id="sec-1-1">
        <title>1.1. Contribution</title>
        <p>Our contribution in this paper is the demonstration of support for multiple human languages in a
text-based programming language. Current support extends to our first teaching tool, ShapeCreator.
Technically, this mechanism for translating the tool relies on the fact that it is a structure editor. Any
language supported by a structure editor could be translated with the same ease.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Related work</title>
      <p>The body of literature surrounding languages and introduction to programming is extensive. Without
doing a systematic review, we capture some highlights about several aspects: (1) the role of algebra and
programming as languages in learning, (2) the negative impact on non-English speakers of
Englishcentrism, and (3) the advantage of code switching, generally and in the programming context. Finally,
we introduce the history of structure editors, since we will later argue that they provide a pathway to
supporting learning in multiple languages.</p>
      <sec id="sec-2-1">
        <title>2.1. Algebra and programming through a language lens</title>
        <p>
          Algebra is a mandated course in most countries, and is recognized as a gateway or gatekeeper course,
because failure to succeed in algebra closes many educational and career pathways [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. However, poor
performance persisted, prompting Silver [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] to advocate for “algebra for all” including the integration
of algebra and pre-algebra activities in diverse subjects before students formally see algebra in high
school. This led to the formulation of Algebraic Thinking, in early grades by Kieran [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] and middle
grades by Driscoll [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] and many others.
        </p>
        <p>
          Adding a student’s voice to the debate, Solomon [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] highlights the parallels between human languages
and programming languages and how these parallels can be used to introduce programming languages
to even young students. He also draws on knowledge about the way infants acquire language to propose
a sequencing of concepts in early lessons, and criticizes the use of commercial languages, such as Java,
in early instruction because of the overwhelming syntax required to do simple things.
        </p>
        <p>
          Krishnamurthi and Fisler [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] add the perspective of current programming language research, and
argue that diferent language families should be distinguished not by their surface features, but by the
type of abstract machine used to define the semantics of the language. Not surprisingly, functional
languages whose underlying sematics are defined via the evaluation of algebraic expressions, are used
by the authors within the Bootstrap project [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] to connect programming and high school algebra.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Impact of non-native language</title>
        <p>
          Hong et al. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] remarked that since beginners are well-known to have many misconceptions about
programming, having to translate keywords from English to their native language adds another space
where misconceptions can grow. This is reflected in the survey work of Alaofi and Russell [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]
who studied 160 undergraduate students in two countries, and found widespread anxiety related to
a working in a foreign language, with an overall significant negative impact on their assignment
marks. Subsequently, they found through student interviews that even in undergraduate courses where
instruction and testing was in English, 20% of students still reported dificulty understanding keywords,
tooltips and other uses of English in the IDE [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          The Scratch platform is used by millions of students, and has fostered collaborations between countries
and continents. It does have non-English support, so it is natural to ask whether this support has had an
impact. Dasgupta and Hill [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] correlated the rate at which Scratch learners added to their repertoire of
blocks (abstract syntax nodes appearing in their program trees) to multiple variables, including whether
they were using the English or translated interfaces. They found a 5% to 10% increase in repertoire
when the interface was translated into the local language for their country. Feijoo-Garcia et al. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]
studied English-Second Language (ESL) students learning Scratch. The found that “the majority of ESL
Learners (i.e. Hispanic participants) thought that they would perform better in their native language.
This feeling of inadequacy can impact confidence in learning[...]” For example, Hispanic students
took 5.65 minutes on average to familiarize themselves with the interface, which only took native
English speakers 3.52 minutes. Students would definitely pick up on this diference, which explains
their feeling of inadequacy. It would be interesting to try to duplicate these results in a classroom in a
non-English-speaking country.
        </p>
        <p>
          Soosai Raj et al. [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] studied two groups of undergraduate students in Tamil Nadu, learning about
linked lists. One group was taught in English exclusively, and the other was taught using English/Tamil
code switching, and found 96% of the code-switching grouped preferred that both languages be used,
which even 67% of the control group would have preferred to switch. “More than 90% of the questions
that were asked by the students in the experimental group during the lecture were in Tamil.” Typical
feedback (as quoted in the original paper): “The lecture was really very useful and it was easy to
understand since the mixture of English and Tamil language helps us to learn better.”
        </p>
        <p>
          Through a thematic analysis applied to semi-structured teacher interviews, Dodoo et al. [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] found
that second-language issues afected both students and teachers in US schools: “Students have to
grasp the underlying concepts of programming and translate them into English while coding. This
dual cognitive load can be overwhelming, hindering students’ ability to fully engage with and learn
computing concepts.” Teachers are well aware of these issues, and have found work-arounds, even
teachers without knowledge of the non-English language (Spanish, in this case). For example, they do
more hands-on coding, allowing students to observe them, and rely on visual aids.
        </p>
        <p>
          Khan and Nabi [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] also explained issues with the non-native use of English using cognitive load:
“In [Higher Education Institution]s the medium of instruction, [for various reasons], is oficially English.
This does not take into account the fact that students coming from Urdu medium background, and
even many from English medium, are not suficiently well versed in the English language. Thus the
medium of instruction (English) can become extraneous cognitive load for these students and adversely
afects their learning.” An addition insight from their interviews is that the preference for language of
communication is not the same for verbal and written communication. It is more important that verbal
communication be in their native language. This is consistent with previous comments about students
needing to translate concepts into their native language, because verbal communication needs to be
translated simultaneously, but written communication does not.
        </p>
        <p>
          Guo [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] analyzed 840 responses from programmers spanning 86 countries and 74 native languages,
identifying several barriers faced by non-native English speakers. Their findings reinforce many of the
ideas identified by other researchers including:
• “Respondents wanted instructional materials to have more visual imagery and multimedia (e.g.,
videos) rather than plain text, presumably because visuals can more easily transcend languages."
• “Non-native speakers must often rely on English-language instructional materials, some reported
trouble with learning enough English to comprehend those materials while simultaneously
learning the given programming concepts."
• “Non-native English speakers also reported trouble understanding source code. A common root
cause is that programming language keywords (such as ’while’) are in English."
We have focussed on the findings most relevant to primary and secondary education, but there are
many more interesting findings in this thorough survey of learners.
        </p>
        <p>
          Finally, Becker [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] supports many of the arguments above, and adds the observation that error
messages in English are especially dificult for non-native English speakers.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Code switching</title>
        <p>
          At one time, switching language while teaching and learning was actively discouraged or even
forbidden [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. In immersion programs, code switching would take away from time spent on the target
language, and stop students from cutting the umbilical cord linking their new language knowledge to
their native language. In many cases, however, this was also linked to class- and race-based
discrimination, and in colonial settings to cultural genocide.
        </p>
        <p>
          Today, code switching is recognized as a tool which can be used positively in and out of the classroom.
It is one tool among many to aid in communication. In addition to human languages, programming
languages and mathematics are now recognized as tools of communication, which can be studied in the
same framework, with cross-fertilization of ideas. Even in the case of block languages used to program
robots in kindergarten, Berciano et al. [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] found that translating from one language to another revealed
issues with trainee-teacher understanding, and could be used for improving teacher education.
        </p>
        <p>
          Contrasting diferent approaches to bilingualism (with and without code switching), Bers [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]
comments that in a context of code switching “both languages interact to develop metalinguistic
awareness, abstraction and higher forms of knowledge.” In the context of learning programming
languages, Hong et al. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] found that learning both Python and C at the same time did not slow
learning compared to a group learning only one language, as might be expected, given the diferent
syntaxes involved. Spanning natural, programming, and coding languages, Schanzer et al. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] have
shown in multiple studies that translating between programs, symbolic algebra and English (in the
form of word problems) improves learning and retention.
        </p>
        <p>
          Finally, Ruby and Krsmanovic [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] survey the literature on what is known about teaching
programming in English versus students’ native language. Although they conclude that English knowledge is
eventually required to reach advanced levels in the field, because of the extensive literature in English,
it is likely that native language support would be beneficial for beginners. However, research is required
to establish this, and there isn’t even an accepted student-centred model for programming-language
acquisition to parallel the ones for the acquisition of human languages.
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Structure editors</title>
        <p>
          Structure editors, called projectional editors by some authors, are editors which enable editing of the
program structure (i.e, the Abstract Syntax Tree (AST)). Early structure editors [
          <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
          ] enforced strict
adherence to AST structures by template-based edit actions, requiring users to construct programs
through drag-and-drop interactions. While these systems ensured precision and syntactic correctness,
they were rigid and unintuitive for users accustomed to free-form text editing. Subsequent developments
introduced more adaptive systems supporting free-form editing, where users input plain text code that
is parsed into an AST within the editor [
          <xref ref-type="bibr" rid="ref25 ref26">25, 26</xref>
          ]. Modern structure editors further enhance usability by
enabling seamless code entry and manipulation, mimicking traditional text editors while internally
preserving AST-based constraints. Omar et al. [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], for example, laid a theoretical foundation for work
in this direction by defining a typed structure-editor calculus.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Background</title>
      <p>
        The student service club is aprt of an outreach program spanning two decades. Since 2016, our most
common activity has been introducing children to coding in the Elm programming language, with a focus
on a graphics library for creating vector graphics. The design of the library supports Algebraic Thinking.
See [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] for a description of the graphics library and the philosophy of providing a small number of
orthogonal functions through which complex graphics can be built using function composition.
      </p>
      <p>Elm is a functional programming language. Today many programming languages like Swift, Kotlin,
Scala, and Python are adopting functional programming features, but this introduces extra expressivity
at the cost of increased complexity. Elm is a deliberately small language, and this support our educational
purpose well, because there is less to learn, and it made it easy for the developers to create relatively
simple and often prescriptive error messages.</p>
      <p>We used the simple syntax and the focus on functions to create a composable graphics library in
which graphics are created using an orthogonal set of functions with the minimum number of arguments
possible. For example, circle : Float -&gt; Stencil has one argument, which every child knows
must be the radius if they have already learned about circles. The need for documentation is reduced,
but not eliminated.</p>
      <sec id="sec-3-1">
        <title>3.1. ShapeCreator</title>
        <p>From the core language, children initially only need to understand list notation and “forward pipe” (|&gt;)
for composing functions. Most of their learning involves the functions in our graphics library, which
are mostly meaningful to them from geometry. The challenge then is not of understanding, but of
remembering which concepts from geometry are encoded available in our library. For this we created
ShapeCreator as a single-page reference, which we later made interactive for use as a discovery tool,
and finally added multiple-shape editing, so that initial tasks could be performed on the same page as
the documentation.</p>
        <p>
          Becker [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] observed error messages are already hard for beginners to understand, and when they
are in English, it becomes even tougher for non-native English speakers to interpret and resolve them.
This is obviously an argument for translating all aspects of tooling and documentation, but it is also an
argument for using a structure editor (e.g., block coding) which eliminates errors entirely, and thus the
need to translate them. This is one of the advantages with ShapeCreator (figure 2).
        </p>
        <p>The structure of ShapeCreator reflects the compositional structure of the library. In the first column
(A) are the functions which create Stencil s. In column (G) are the functions which take a Stencil
and fill or outline it in a colour (H), producing a Shape. Finally, transformations in column (J) can be
applied to the resulting Shape. The blue ribbon starting at (B) emphasizes the composition of functions
to produce the final shape.</p>
        <p>In order to function as a structure editor for first coding tasks, a list (E) of Shapes can be selected for
editing via the ribbon, or rearranged using touch or mouse actions. The resulting composite Shape is
displayed at (D).</p>
        <p>Teacher training is supported by videos on our STaBL Foundation YouTube Channel.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Activities</title>
        <sec id="sec-3-2-1">
          <title>3.2.1. Wordathon</title>
          <p>After being introduced to coding with ShapeCreator, children proceed to one of several activites which
introduce collaboration, and meaningful goals. Currently, these activities require switching to an
Integrated Web-Based Development Environment (WebIDE) (figure 3).</p>
          <p>In the simplest activity, the teacher distributes reading words to the children, and they singly or in pairs
code a vector graphic or animation of that word. Mentors then integrate the words into a reading game,
using the project support built into the WebIDE (figure 3).</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>3.2.2. Herogram 3.2.3. Comics</title>
          <p>Herograms are digital postcards in which children code an illustration or animation for the front, and
write a message and address for the back. They can even modify the graphics for the stamp. Teachers
can use this activity to celebrate holidays such as Mother’s Day, or ask children to create a Herogram to
thank a famous scientist, frontline worker, etc.</p>
          <p>The comic activity introduces narration and calls for greater teamwork than in the Wordathon activity,
because groups of children must agree on a story, characters, frame-by-frame breakdown of the story,
and then assign tasks to produce the backgrounds, characters and text required. In figure 1, the finished
product is displayed. The framework takes the individual frames and composes them into a traditional
comic-book format, using multiple “pages” if necessary. The framework animates the enlargement of
frames as they are clicked on. In this case the last frame of the page is highlighted. Children can also
create animations within the frames. In this science-literacy example, the exchange of 2 and 2
gases is animated.</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>3.2.4. Adventure Game</title>
          <p>
            Narrative and teamwork are further developed in the Adventure Game. In this activity children draw a
state diagram which represents the “map” of their adventure. States represent places, and transitions
are rendered as buttons, which when clicked take the reader to the connected state. See [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] for an
explanation of user interaction via state diagrams, and examples of how the web tool SDDraw is used
to draw the state diagrams and generate a working adventure game, to which children add graphics
and animation. Recently we tested a prototype version of SDDraw which allows multiple children to
create the state diagram collaboratively. Twenty children and mentors recently created a New Year’s
adventure game1 during a one-week hackathon (coding collaboration).
          </p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. ElmSr: a structure editor</title>
        <p>Structure editors represent an alternative approach to programming environments by structuring code
directly around the Abstract Syntax Tree (AST) rather than relying on plain text. This approach ensures
that syntax and type errors are eliminated at the source, ofering a robust and error-free programming
experience. Tools like Scratch have demonstrated the potential of structure editors in educational
contexts, particularly for teaching programming concepts to novices. However, text-based structure
editors have faced resistance, often attributed to the perceived rigidity and unnaturalness of directly
manipulating ASTs. Bridging this gap requires innovations that integrate intuitive user interactions
with the underlying structural constraints of AST-based programming.</p>
        <p>
          ShapeCreator is itself a structure editor, but it only supports a limited subset of the language and
graphics library. ElmSr [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] is our project to support all of the language with extensible support for
additional libraries, in a way which meets user expectations based on their experience with text editors,
addressing the weaknesses of structure editors.
        </p>
        <p>Unlike traditional text editors, structure editors enforce strict constraints on user input to ensure
syntactic and semantic correctness. While this provides significant advantages in error prevention,
the inflexibility of many structure editors has been a barrier to adoption. For structure editors to gain
broader acceptance, they must balance the benefits of AST-based editing with interaction paradigms
that align with user expectations shaped by conventional text-based systems.</p>
        <p>To explore potential solutions to these challenges, we have developed an experimental structure
editor, ElmSr, for the Elm programming language. ElmSr focuses on “natural” navigation and editing
behaviours, aligning cursor movement and user actions with the visual representation of code rather
than the underlying AST structure. This keyboard-driven editor enhances the user experience while
maintaining the structural guarantees of AST-based editing. It supports intuitive navigation, provides
a consistent experience for arithmetic expressions and includes a real-time, colour-coded feedback
system for identifier validity, aiding error detection and correction. Additionally, ElmSr was developed
to support our Algebraic Thinking curriculum, incorporating shortcuts for common tasks to help users
eficiently progress from simple to complex programs. While there are many reasons researchers want
to make structure editors widely adoptable, for this paper, the key advantage is that a structure editor
renders the text based on the AST, so it is easy to make rendering match the user’s language preference.</p>
        <p>Figure 4 shows ElmSr’s graphical interface, which is divided into functional areas. The left pane
is the code editor, where users can enter and edit code, with cursor location highlighted in yellow. It
supports typed holes and includes a clipboard for pasting copied items into type-compatible locations.
The upper right corner displays the type of the code block at the cursor, with a keyboard shortcut guide
below for quick reference.</p>
        <p>Figure 5 illustrates the structured yet intuitive nature of expression entry and editing within ElmSr.
Expression input appears to users as a natural text entry process, allowing them to type and modify
code seamlessly. However, the underlying structure being manipulated remains a well-formed, typed
AST at all times.</p>
        <p>This ensures that every modification aligns with the constraints of Elm’s type system. The figure
presents a sequence of editing states, where the cursor navigates through subexpressions, enabling
context-aware operations such as wrapping expressions in let-in, extracting values into function
arguments, or defining new bindings. For example, a numeric constant within an expression can be
elevated to a function argument using the Shift + P key combination.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Multilingual support in ShapeCreator</title>
      <p>An ad-hoc framework was developed specifically to support translation of ShapeCreator. Strings were
extracted and a template translation module with a list of translation pairs. Translators duplicate the
template module, or an existing module, and translate the 100 strings. To accommodate variable word
or phrase lengths, each translated string is paired with a font size, to allow the developers to adjust
sizes in a consistent way for grouped interface elements. When users select a diferent language using
the menu of clouds, the appropriate list of pairs is converted into a dictionary which is passed in
to a translation function used by all interface elements. Figure 6 shows the interface in the Korean
translation. The meaning of the code does not change, as you can verify by comparing this figure with
ifgure 2. Currently, this will be useful for students copying their code into the WebIDE in order to add
animations or interactivity.</p>
      <p>The latest development version of ShapeCreator is available at STaBL Foundation.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Future work</title>
      <sec id="sec-5-1">
        <title>5.1. Curriculum development</title>
        <p>We are in the process of releasing French versions of our six lessons on YouTube. We have plans to record
several other languages, for which we have confident native speakers. Not everyone is comfortable
making videos, however, and contrary to our initial expectations, our videos are mostly used by teachers,
many of whom are equally comfortable watching videos in English. We will have to evaluate whether
having non-English videos results in greater teacher recruitment.</p>
        <p>
          The book Creating with Code [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] is published under a Creative Commons license, so any educator
could translate (and adapt) sections relevant to their teaching, but it would be a big undertaking to
translate the whole book. However, most students today prefer to learn from videos, and it is easy for
native speakers to produce short videos. So that is probably a better use of resources than translating
the whole textbook.
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>5.2. Structure editor</title>
        <p>Introducing ElmSr will aid language support in two ways. Being a structure editor, it will be easy to
support translation of the language, libraries and interface. However, support for creating translations
can also be added. Currently, supporting new languages in ShapeCreator requires manual updates
to translation files within the codebase, with translations provided as pull requests to the GitHub
repository. This process is a barrier for educators and translators unfamiliar with version control
systems like Git. To address this, ElmSr could include a dedicated translation facility, allowing users
to create translations directly within the editor. Translators could define localized terms for exposed
functions, data types, and strings in shared modules using the intuitive interface of the editor. This
discount
approach would enable teachers and translators to easily add translations and expand the ecosystem’s
accessibility to a wider audience.</p>
      </sec>
      <sec id="sec-5-3">
        <title>5.3. Evaluation</title>
        <p>With our partners, we are planning tests for ShapeCreator with students using Mi’kmaq, Tibetan, and
Tamil, in the context of immersion programs for Indigenous students, minority language speakers, and
Tamil-speaking children with very limited knowledge of English. This informal validation will be used
to refine the curriculum used in each situation. Formal evaluations will take place once the curriculum
has been standardized, in one or two years.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Recommendations</title>
      <p>Native support Although further research is required to strengthen the evidence that native-language
support in a programming language leads to accelerated learning, based on the combination of the
evidence we have, and the well-known lack of diversity in the software industry, we recommend
that all programming languages widely used in education should be translated into non-English
languages.</p>
      <p>Code switching Based on ample evidence from multiple subjects that code switching is beneficial to
students, we recommend that teachers be trained to teach children that people have developed</p>
      <p>many diferent types of language for communication, including human languages, mathematical
languages and programming languages. Using a combination of the best languages to express
ideas will lead to better communication and better understanding.</p>
    </sec>
    <sec id="sec-7">
      <title>7. A call for collaboration</title>
      <p>Our main contribution of this paper is a framework for translating a text-based language into
nonEnglish languages. Using this framework, curriculum developers can support introductory text-based
coding in any language. Using the translations already available, teachers can support students in the
language in which they are more comfortable. For students who want to learn another language, they
will be intrigued to create code in one language and have translated into any of the other languages at
the click of a button. This puts students in control of their learning environment, and allows them to
make the transition at their own pace.</p>
      <p>The impact of these tools will depend on the number of languages supported. We therefore invite
other educators and researchers to contact us to learn how to contribute additional languages, and
access other tools.</p>
    </sec>
    <sec id="sec-8">
      <title>Author Contributions</title>
      <p>Conceptualization – Christopher Kumar Anand; methodology – Christopher William Schankula;
formulation of tasks analysis – Kji-Wikuom Studios and Christopher William Schankula; software –
Kji-Wikuom Studios and Christopher William Schankula; writing – original draft – Kji-Wikuom Studios
and Juthada (Jamie) Malakulang; analysis of results – Christopher William Schankula and Kji-Wikuom
Studios; visualization – Christopher Kumar Anand and Juthada (Jamie) Malakulang; reviewing and
editing – Juthada (Jamie) Malakulang and Christopher William Schankula. All authors have read and
agreed to the published version of the manuscript.</p>
    </sec>
    <sec id="sec-9">
      <title>Funding</title>
      <p>This study did not receive any funding.</p>
    </sec>
    <sec id="sec-10">
      <title>Data Availability Statement</title>
    </sec>
    <sec id="sec-11">
      <title>Conflicts of Interest</title>
      <p>The authors declare no conflict of interest.</p>
    </sec>
    <sec id="sec-12">
      <title>Acknowledgments</title>
      <p>No new data were created or analysed during this study. Data sharing is not applicable.
We thank the translators who contributed translations to MultiLingual ShapeCreator - Aadya Khanna,
Bradley Chamberlain, Cindy Zhu, Hannelore Anand, Melissa Ho, Omid Isfahani Alamdari, Sophia He,
Tenzin Migmar, and Yara Alammouri. Also, teachers and students for their feedback on past versions,
especially our high-school mentors and undergraduate volunteers.</p>
    </sec>
    <sec id="sec-13">
      <title>Declaration on Generative AI</title>
      <p>The authors have not employed any Generative AI tools in preparing this paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dasgupta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. M.</given-names>
            <surname>Hill</surname>
          </string-name>
          , Learning to Code
          <source>in Localized Programming Languages, in: Proceedings of the Fourth</source>
          (
          <year>2017</year>
          ) ACM Conference on Learning @ Scale,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Cambridge Massachusetts USA,
          <year>2017</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>39</lpage>
          . doi:
          <volume>10</volume>
          .1145/3051457.3051464.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Anand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Dulai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Arief</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. D'Mello</surname>
            ,
            <given-names>S. S.</given-names>
          </string-name>
          <string-name>
            <surname>Menon</surname>
            ,
            <given-names>C. W.</given-names>
          </string-name>
          <string-name>
            <surname>Schankula</surname>
          </string-name>
          ,
          <article-title>Creating with Code: an Introduction to Functional Programming, User Interaction, and Design Thinking, version 1</article-title>
          . ed., Fondation STaBL Foundation, [Louisbourg, Nova Scotia],
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Silver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Saunders</surname>
          </string-name>
          , E. Zarate,
          <article-title>What factors predict high school graduation in the Los Angeles Unified School District</article-title>
          , volume
          <volume>14</volume>
          , California Dropout Research Project Santa Barbara, CA,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Silver</surname>
          </string-name>
          , On My Mind:
          <article-title>"Algebra for All"</article-title>
          -Increasing
          <string-name>
            <surname>Students</surname>
          </string-name>
          ' Access to Algebraic Ideas,
          <source>Not Just Algebra Courses, Mathematics Teaching in the Middle School</source>
          <volume>2</volume>
          (
          <year>1997</year>
          )
          <fpage>204</fpage>
          -
          <lpage>207</lpage>
          . doi:
          <volume>10</volume>
          .5951/ MTMS.2.4.0204.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Kieran</surname>
          </string-name>
          ,
          <article-title>Algebraic thinking in the early grades: What is it</article-title>
          ,
          <source>The Mathematics Educator</source>
          <volume>8</volume>
          (
          <year>2004</year>
          )
          <fpage>139</fpage>
          -
          <lpage>151</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Driscoll</surname>
          </string-name>
          , Fostering Algebraic Thinking:
          <article-title>A Guide for Teachers, Grades 6-10</article-title>
          , Heinemann, 361 Hanover Street, Portsmouth,
          <source>NH 03801-3912 ($23)</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Solomon</surname>
          </string-name>
          ,
          <article-title>Programming as a Second Language, Learning &amp; Leading with Technology 32 (</article-title>
          <year>2005</year>
          )
          <fpage>34</fpage>
          -
          <lpage>39</lpage>
          . URL: https://files.eric.ed.gov/fulltext/EJ697292.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Krishnamurthi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Fisler</surname>
          </string-name>
          ,
          <article-title>Programming Paradigms and Beyond</article-title>
          , in: S. A.
          <string-name>
            <surname>Fincher</surname>
            ,
            <given-names>A. V.</given-names>
          </string-name>
          <string-name>
            <surname>Robins</surname>
          </string-name>
          (Eds.),
          <source>The Cambridge Handbook of Computing Education Research</source>
          , 1 ed., Cambridge University Press,
          <year>2019</year>
          . doi:
          <volume>10</volume>
          .1017/9781108654555.014.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Schanzer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Fisler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Krishnamurthi</surname>
          </string-name>
          , Assessing Bootstrap:
          <article-title>Algebra Students on Scafolded and Unscafolded Word Problems</article-title>
          , in
          <source>: Proceedings of the 49th ACM Technical Symposium on Computer Science Education</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Baltimore Maryland USA,
          <year>2018</year>
          , pp.
          <fpage>8</fpage>
          -
          <lpage>13</lpage>
          . doi:
          <volume>10</volume>
          .1145/ 3159450.3159498.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Hong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-F.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Michael</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Phillips</surname>
          </string-name>
          ,
          <article-title>A multilingual and comparative approach to teaching introductory computer programming</article-title>
          ,
          <source>Journal of Computing Sciences in Colleges</source>
          <volume>33</volume>
          (
          <year>2018</year>
          )
          <fpage>4</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Alaofi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          ,
          <article-title>The Influence of Foreign Language Classroom Anxiety on Academic Performance in English-based CS1 Courses</article-title>
          , in
          <source>: Proceedings of the 2022 Conference on United Kingdom &amp; Ireland Computing Education Research</source>
          , ACM, Dublin Ireland,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          . doi:
          <volume>10</volume>
          .1145/3555009.3555020.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Alaofi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          ,
          <article-title>The Use of English Language to Teach CS1 to Non-Native English Speakers: Students Perspective</article-title>
          ,
          <source>in: Proceedings of the ACM Conference on Global Computing Education</source>
          Vol
          <volume>1</volume>
          ,
          <string-name>
            <given-names>ACM</given-names>
            ,
            <surname>Hyderabad</surname>
          </string-name>
          <string-name>
            <surname>India</surname>
          </string-name>
          ,
          <year>2023</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>21</lpage>
          . doi:
          <volume>10</volume>
          .1145/3576882.3617931.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P. G.</given-names>
            <surname>Feijoo-Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>McNamara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Stuart</surname>
          </string-name>
          ,
          <article-title>The Efects of Native Language on Block-Based Programming Introduction: A Work in Progress with Hispanic Population</article-title>
          , in: 2020 Research on Equity and Sustained Participation in Engineering, Computing, and
          <string-name>
            <surname>Technology</surname>
            (RESPECT), IEEE, Portland,
            <given-names>OR</given-names>
          </string-name>
          , USA,
          <year>2020</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          . doi:
          <volume>10</volume>
          .1109/RESPECT49803.
          <year>2020</year>
          .
          <volume>9272513</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Soosai Raj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ketsuriyonk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Patel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Halverson</surname>
          </string-name>
          ,
          <article-title>Does Native Language Play a Role in Learning a Programming Language?</article-title>
          ,
          <source>in: Proceedings of the 49th ACM Technical Symposium on Computer Science Education</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Baltimore Maryland USA,
          <year>2018</year>
          , pp.
          <fpage>417</fpage>
          -
          <lpage>422</lpage>
          . doi:
          <volume>10</volume>
          .1145/ 3159450.3159531.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E. R.</given-names>
            <surname>Dodoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Nelson-Fromm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Guzdial</surname>
          </string-name>
          , Teaching Computing to K-12
          <source>Emergent Bilinguals: Identified challenges and Opportunities</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Pittsburg,
          <year>2025</year>
          . doi: https://doi.org/10.1145/ 3641554.3701889.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>T. M. Khan</surname>
            ,
            <given-names>S. W.</given-names>
          </string-name>
          <string-name>
            <surname>Nabi</surname>
          </string-name>
          ,
          <article-title>English versus Native Language for Higher Education in Computer Science: A Pilot Study</article-title>
          ,
          <source>in: Proceedings of the 21st Koli Calling International Conference on Computing Education Research</source>
          , ACM,
          <string-name>
            <surname>Joensuu</surname>
            <given-names>Finland</given-names>
          </string-name>
          ,
          <year>2021</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          . doi:
          <volume>10</volume>
          .1145/3488042.3488070.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <article-title>Non-native english speakers learning computer programming: Barriers, desires, and design opportunities</article-title>
          ,
          <source>in: Proceedings of the 2018 CHI conference on human factors in computing systems</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Becker</surname>
          </string-name>
          , Parlez-vous Java? Bonjour La Monde!= Hello World:
          <article-title>Barriers to Programming Language Acquisition for Non-Native English Speakers</article-title>
          , in: PPIG,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>D. B. MacDonald</surname>
          </string-name>
          , G. Hudson, The Genocide Question and Indian Residential Schools in Canada,
          <source>Canadian Journal of Political Science</source>
          <volume>45</volume>
          (
          <year>2012</year>
          )
          <fpage>427</fpage>
          -
          <lpage>449</lpage>
          . doi:
          <volume>10</volume>
          .1017/S000842391200039X.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Berciano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cuida</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-L. Novo</surname>
          </string-name>
          ,
          <article-title>The importance of coding and translation between programming languages in sequential activities of pre-service teachers: an approach, Education and Information Technologies (</article-title>
          <year>2024</year>
          ).
          <source>doi:10.1007/s10639-024-13092-1.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. U.</given-names>
            <surname>Bers</surname>
          </string-name>
          ,
          <article-title>Coding as another language: a pedagogical approach for teaching computer science in early childhood</article-title>
          ,
          <source>Journal of Computers in Education 6</source>
          (
          <year>2019</year>
          )
          <fpage>499</fpage>
          -
          <lpage>528</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s40692-019-00147-3.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>I.</given-names>
            <surname>Ruby</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Krsmanovic</surname>
          </string-name>
          ,
          <article-title>Does learning a programming language require learning English? A comparative analysis between English and programming languages, in: EdMedia+ Innovate Learning, Association for the Advancement of Computing in Education (AACE</article-title>
          ),
          <year>2017</year>
          , pp.
          <fpage>420</fpage>
          -
          <lpage>427</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>V.</given-names>
            <surname>Donzeau-Gouge</surname>
          </string-name>
          , G. Huet,
          <string-name>
            <given-names>G.</given-names>
            <surname>Kahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lang</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Levy,</surname>
          </string-name>
          <article-title>A structure-oriented program editor: a first step towards computer assisted programming</article-title>
          ,
          <source>IRIA. Laboratoire de Recherche en Informatique et Automatique</source>
          ,
          <year>1975</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>D. B. Garlan</surname>
            ,
            <given-names>P. L.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>GNOME:</given-names>
          </string-name>
          <article-title>An introductory programming environment based on a family of structure editors</article-title>
          ,
          <source>SIGPLAN Not</source>
          .
          <volume>19</volume>
          (
          <year>1984</year>
          )
          <fpage>65</fpage>
          -
          <lpage>72</lpage>
          . doi:
          <volume>10</volume>
          .1145/390011.808250.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>M.</given-names>
            <surname>Voelter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Szabó</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lisson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kolb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Erdweg</surname>
          </string-name>
          , T. Berger,
          <article-title>Eficient development of consistent projectional editors using grammar cells</article-title>
          ,
          <source>in: Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering</source>
          , Association for Computing Machinery, New York, NY, USA,
          <year>2016</year>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>40</lpage>
          . doi:
          <volume>10</volume>
          .1145/2997364.2997365.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>P.</given-names>
            <surname>Voinov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rigger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Su</surname>
          </string-name>
          , Forest:
          <article-title>Structural Code Editing with Multiple Cursors</article-title>
          ,
          <source>in: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Association for Computing Machinery</source>
          , New York, NY, USA,
          <year>2022</year>
          , pp.
          <fpage>137</fpage>
          -
          <lpage>152</lpage>
          . doi:
          <volume>10</volume>
          .1145/3563835.3567663.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>C.</given-names>
            <surname>Omar</surname>
          </string-name>
          , I. Voysey,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hilton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Aldrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Hammer</surname>
          </string-name>
          ,
          <article-title>Hazelnut: a bidirectionally typed structure editor calculus</article-title>
          ,
          <source>in: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, Association for Computing Machinery</source>
          , New York, NY, USA,
          <year>2017</year>
          , pp.
          <fpage>86</fpage>
          -
          <lpage>99</lpage>
          . doi:
          <volume>10</volume>
          .1145/3009837.3009900.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>N.</given-names>
            <surname>Osmani</surname>
          </string-name>
          , ElmSr: A Structure Editor for Elm,
          <source>Master's thesis</source>
          , McMaster University,
          <year>2024</year>
          . URL: https://macsphere.mcmaster.ca/handle/11375/29828.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>