<!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>
      <journal-title-group>
        <journal-title>X (M. Vandeloise);</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Rethinking paradigmatic collaboration: new metrics for inter-language synergy in software engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mikel Vandeloise</string-name>
          <email>mikel.vandeloise@unamur.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gonzague Yernaux</string-name>
          <email>gonzague.yernaux@unamur.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wim Vanhoof</string-name>
          <email>wim.vanhoof@unamur.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Workshop</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Computer Science, University of Namur</institution>
          ,
          <addr-line>Rue Grandgagnage 21, 5000 Namur</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0001</lpage>
      <abstract>
        <p>This paper introduces two novel metrics for assessing collaboration potential between programming paradigms and languages, ofering a fresh approach to evaluating inter-paradigm interactions. The quantitative framework introduced challenges traditional methods by highlighting both the opportunities and the challenges of integrating paradigms with varying characteristics. Initial findings suggest that the metric efectively captures collaboration within similar paradigms, with functional paradigms demonstrating particularly strong collaboration potential. However, it also underscores the complexity of unifying divergent paradigms. The goal of this paper is to provoke discussion and foster further research, such as the refinement of metrics to obtain useful measurements in technology selection steps and interdisciplinary software development.</p>
      </abstract>
      <kwd-group>
        <kwd>Programming paradigms</kwd>
        <kwd>Collaboration metrics</kwd>
        <kwd>Interoperability</kwd>
        <kwd>Languages integration</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>(W. Vanhoof)</p>
      <sec id="sec-1-1">
        <title>With most existing research on interoperability between programming languages focusing on the</title>
        <p>
          technical and syntactic aspects of the question [
          <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
          ], there is still a lack of quantitative tools capable of
encapsulating the notion at the level of programming paradigms. Our research aims to address this gap.
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>The key contributions of this paper are threefold.</title>
        <p>CEUR
ceur-ws.org</p>
      </sec>
      <sec id="sec-1-3">
        <title>1. We adapt an existing taxonomy of paradigms to allow for a rigorous formulation of the concept</title>
        <p>of paradigm.</p>
      </sec>
      <sec id="sec-1-4">
        <title>2. We develop a metric tailored to assess the potential for collaboration between diferent paradigms.</title>
      </sec>
      <sec id="sec-1-5">
        <title>The metric is designed to allow for a certain (parametric) flexibility, that can be fine-tuned based</title>
        <p>on research objectives.</p>
      </sec>
      <sec id="sec-1-6">
        <title>3. We extend this metric to evaluate the potential for collaboration between diferent languages,</title>
        <p>focusing on their underlying paradigms.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Towards a refined taxonomy of programming paradigms</title>
      <sec id="sec-2-1">
        <title>In 2009, Van Roy’s foundational work [6] set the stage for a comprehensive classification of</title>
        <p>
          programming paradigms. In this section, we extend and refine his seminal taxonomy through the
somewhat specific lens of inter-language synergies and collaborations. The theoretical foundations of
interest in this pursuit have, in fact, been little investigated in the past; the main sources that we have
collected and selected through an extensive literature review are [
          <xref ref-type="bibr" rid="ref1 ref7 ref8 ref9">7, 1, 8, 9</xref>
          ].
        </p>
        <p>Our taxonomy is essentially embodied by an acyclic directed graph where each node corresponds to a
distinct paradigm (Figure 1a), and each edge signifies the acquisition of a concept (Figure 1b) that makes
a paradigm evolve into a more specialised form. We call the acquisition of specific concepts through such
evolutionary paths conceptual hierarchy. The resulting structure allows incorporating the paradigms’
inherent concepts as well as their computable attributes such as Turing completeness (Figure 1c) and
non-determinism observability (Figure 1d). These attributes allow categorising the paradigms into
broader groups known as meta-paradigms (Figure 1e), which help to provide a macroscopic view of
their relationships, according to the following definition.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 2.1 A meta-paradigm is a collection of core concepts, attributes, and principles shared</title>
        <p>by multiple paradigms. It conceptually regroups features that influence the models, design, and
implementation of groups of paradigms. Transitions between meta-paradigms result from acquiring
specific concepts, leading to shifts in focus and application.</p>
      </sec>
      <sec id="sec-2-3">
        <title>An interesting case arises when distinct paradigms present similar (yet separated) conceptual hier</title>
        <p>archies, which can in some cases influence their compatibility predispositions. We call this specific
relation propagation; see Figure 1f for concrete examples.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Definition 2.2 Propagation is a relationship that occurs between two paradigms that share a same</title>
        <p>set of concepts, but acquired in diferent orders.</p>
        <p>(a) (b) (c) (d) (e) (f)
Figure 1: Fragments of the taxonomy. The grey-to-yellow gradient in (Figure 1c) indicates the shift from
paradigms limited to data structures to those enabling Turing completeness.</p>
        <p>
          In total, our proposed taxonomy includes 28 distinct paradigms defined by 17 key concepts and 2
observable binary characteristics and organised into 11 meta-paradigms. The whole graph is depicted
in Appendix A’s Figure 4, along with an exhaustive enumeration of the diferent constitutive sets
and an illustration of our approach (Table 1) in which we instantiate our framework on the so-called
”deterministic logic” paradigm. More information on the array of paradigms considered can also be
found online in the form of a poster [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. A measure for paradigmatic collaboration</title>
      <sec id="sec-3-1">
        <title>Based on our taxonomy, we can formulate a definition of the very notion of a paradigm.</title>
        <p>Definition 3.1
 = (,  , ,  , ,  )</p>
        <p>A programming paradigm, often denoted  , is formally defined as a 6-tuple, i.e.</p>
        <p>, where each element represents a specific dimension of the paradigm:
•  (⊆ Concepts) is the non-empty set of key concepts that define the paradigm.
•  (⊆ Paradigms) is the parent paradigms from which  evolved.
•  (⊆ Paradigms) is the child paradigms descended from  .
•  (∈ {0, 1}) is a Boolean indicating if all languages using  can be Turing-complete.
•  (∈ {0, 1}) is a Boolean indicating if  permits observable non-determinism.
•  (∈ Meta-paradigms) is the associated meta-paradigm.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Now, to assess the compatibility and collaboration potential between paradigms, we developed a metric that considers their structure, relationships, and key properties.</title>
        <p>
          Definition 3.2 The Inter-Paradigm Collaboration Metric (PCM ) ∶ Paradigms × Paradigms ↦ [
          <xref ref-type="bibr" rid="ref1">0, 1</xref>
          ] is
defined, for  1 = ( 1,  1,  1,  1,  1,  1) and  2 = ( 2,  2,  2,  2,  2,  2), as
        </p>
        <p>
          PCM ( 1,  2) =  ×  ( 1,  2) +  ×  (
+  × MP ( 1,  2) +  ×  (
1,  2) +  ×  (
1,  2) +  ×  (
2,  1)
1,  2)
where , ,  , , ,  ∈ [
          <xref ref-type="bibr" rid="ref1">0, 1</xref>
          ] ∧  +  +  +  +  +  = 1 ∧  =
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>The parametric coeficients  ,  ,  ,  ,  , and  are called the collaboration weights. In this initial study,</title>
        <p>each weight is set to 1 to ensure equal contribution from the six factors, although future research may
6
adjust these values based on specific requirements.</p>
      </sec>
      <sec id="sec-3-4">
        <title>The first component of the metric is the intersection of concepts, calculated as the ratio of</title>
        <p>shared concepts to the total number of concepts, and incarnated in the definition by the function
IC ∶  ( Concepts) ×  ( Concepts) → ℝ defined by IC( 1,  2) = || 11∩∪ 22|| . This ratio helps determine how
well paradigms complement each other.</p>
      </sec>
      <sec id="sec-3-5">
        <title>Next, we check for kinship relationships by evaluating whether there is overlap between the</title>
        <p>parent paradigms of one and the child paradigms of the other. The notion is formalised by the function
KR ∶  ( Paradigms) ×  ( Paradigms) ↦ {0, 1}where KR( , ) = 1 if and only if  ∩  ≠ ∅ . Although</p>
        <sec id="sec-3-5-1">
          <title>KR is asymmetric, using both  ( 1,  2) and  ( 2,  1) in   ensures symmetry in the overall metric,</title>
          <p>thus preventing PCM from requiring symmetry in each of its components.
The compatibility of meta-paradigms is determined by a function MP
Meta-paradigms ↦ {0, 1}such that MP ( 1,  2) = 1 ⇔  1 =  2.
∶</p>
        </sec>
      </sec>
      <sec id="sec-3-6">
        <title>Meta-paradigms ×</title>
        <p>We also check for Turing completeness with TC ∶ {0, 1}2 ↦ {0, 1}where TC( 1,  2) =  1 ∧  2.</p>
      </sec>
      <sec id="sec-3-7">
        <title>Finally, we similarly analyse observable non-determinism by determining whether both paradigms</title>
        <p>permit it, formally using the function OND ∶ {0, 1}2 ↦ {0, 1}such that OND( 1,  2) =  1 ∧  2.</p>
      </sec>
      <sec id="sec-3-8">
        <title>These metrics provide a systematic evaluation of compatibility and collaboration potential, fo</title>
        <p>
          cusing on conceptual and computational alignment [
          <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
          ]. We applied this approach to 28 paradigms,
with notable examples including the functional, imperative, and deterministic logic paradigms.
        </p>
      </sec>
      <sec id="sec-3-9">
        <title>The complete results are available in [13], and a focus on three paradigms is presented in Figure 2.</title>
        <p>Interestingly, the functional paradigm (Figure 2a) demonstrates a high level of collaboration potential
with many pairs, suggesting strong compatibility and deep integration possibilities. In contrast, the
imperative paradigm (Figure 2b) shows more variability, with a balanced distribution between low
and moderate collaboration potential, this time hinting that specialised approaches may be needed
to achieve efective integration. As a last remark in this non-exhaustive analysis, we noticed that
the deterministic logic paradigm (Figure 2c) shows strong collaboration potential within its own
meta-paradigm (”constraints and logic”), but generally moderate compatibility outside of it, indicating a
more selective capacity for integration. The whole dataset, modelled using Haskell, is accessible in an
online repository1.</p>
        <p>(a) 
for Functional
(b) 
for Imperative
(c) 
for Deterministic Logic</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Extending the collaboration metric to programming languages</title>
      <sec id="sec-4-1">
        <title>To integrate the results obtained for each constitutive paradigm of a language, we can now define a programming language as follows.</title>
      </sec>
      <sec id="sec-4-2">
        <title>Definition 4.1 A programming language is a set of multiple programming paradigms that collectively</title>
        <p>define its capabilities and behavioural characteristics. For a language named  , the corresponding set is
denoted by   = { 1,  2, … ,   }, where each   ( ∈ 1..) is a distinct paradigm (represented by its tuple)
contributing to the language’s comprehensive functionality.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Detailed descriptions of the paradigmatic structures of individual languages are available in [10]. Given</title>
        <p>the definition above, we can now define a new metric LCM , which captures paradigmatic compatibility
as well, but this time across languages. This metric operates on the combined paradigm sets of the
languages while preserving the integrity of each paradigm, even if it appears in both sets. Definition 4.2
below formalises this approach. It uses an ordering relation, denoted by &gt;, to compare the paradigms
that are represented within the taxonomy. The first incarnation of the relation can be defined as follows.
For two paradigms  and  ′, represented as tuples  = ( 0,  1, … ,  −1 ) and  ′ = ( 0,  1, … ,  −1 ), we
define the order as
 ′ &gt;  ⇔ (∃ ∈ {0, 1, … , min(, ) − 1 }|  =   ∀ &lt;  ∧   &lt;   ) ∨ ( &lt;  ∧ 
 =   ∀ &lt;  )
1See https://github.com/Vdloisem/MCC.</p>
        <p>Definition 4.2 Let    and    be the sets of programming paradigms associated, respectively, with
the programming languages named   and   . Let  be the multiset    ⊕    , i.e. the ordered
concatenation of    and    using the relation &gt; defined above. The Inter-Language Collaboration</p>
        <sec id="sec-4-3-1">
          <title>Metric (LCM ) between   and   is then calculated as</title>
          <p>LCM (   ,    ) = 1 ∑ PCM (,  ′)
( )
2 (, ′)∈
where  = {(,  ′)|,  ′ ∈ ,  ′ &gt; } and  = || .</p>
          <p>
            The process described in Definition 4.2 provides a structured framework to analyse collaboration
between   and   , ofering preliminary insights into language selection, comparative analysis, and
paradigm interaction (see Figure 3). The dotted lines (also present in Figure 2) mark a notion of
”collaboration levels”, based on confidence intervals derived from the distribution of collaboration
scores. For a more comprehensive overview, including a more thorough explanation regarding the
collaboration levels, see [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
          </p>
          <p>(a) Fuctional language
(b) Imperative language
(c) Deterministic Logic Language</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and future work</title>
      <p>This research has laid the groundwork for evaluating collaboration between programming paradigms
based on the adaptation of an existing taxonomy in that context. Our findings suggest that functional
paradigms and, by extension, the languages that incorporate them, show stronger indicators of
collaboration potential. This kind of insight is especially valuable for software engineers that need to
make informed decisions during the architecture and design phases of system development, as it ofers
a quantitative basis for selecting paradigms that can work together more efectively. Although the
metrics show promise, for now, they primarily focus on static characteristics and do not fully capture the
broader concerns of language interoperability as (complex) systems grow and evolve. Future work will
aim to explore deeper inter-paradigmatic interactions and refine the metrics, with a focus on expanding
the framework to support more languages and paradigms while assessing its practical relevance through
qualitative studies. These will examine developers’ language selection based on familiarity, community
support, and domain-specific constraints. Additionally, we plan to develop tools for multi-language
integration in development environments, potentially automating early-stage software decisions. To
enhance comprehensiveness, we will incorporate factors such as typing, compilation, and memory
management into our metrics. Real-world case studies will further refine these metrics, formalize
interoperability and collaboration, and help determine optimal collaboration weights depending on
application contexts. Finally, we will explore assigning weights to each paradigm within a language
and integrating them into LCM to better capture their relative influence. These eforts should refine our
proof of concept and support more complete and efective analyses of software development strategies
in various programming environments.</p>
      <sec id="sec-5-1">
        <title>The following sets provide a detailed view of the refined taxonomy developed in this research.</title>
      </sec>
      <sec id="sec-5-2">
        <title>This taxonomy categorises 28 distinct paradigms based on 17 key concepts and two observable binary characteristics. These paradigms are further organised into 11 meta-paradigms, ofering a comprehensive framework for evaluating collaboration potential within and across programming languages.</title>
        <p>Paradigms
Concepts</p>
        <p>descriptive declarative, first-order functional, functional, imperative, deterministic logic ,
⎧⎪ lazy functional, continuation, adt functional, event loop, stateful functional,
⎪ guarded command, imperative search, sequential object oriented, relational and logic,
⎪ declarative concurrent, adt imperative, multi agent, active object,
= ⎨ shared state concurrent, concurrent object oriented, constraint logic,
⎪ concurrent constraint, lazy declarative concurrent, nonmonotonic dataflow ,
⎪⎪ multi agent dataflow, continuous synchronous, lazy concurrent constraint ,
⎩ discrete synchronous
⎫
⎪
⎪
⎪
⎬
⎪
⎪
⎪
⎭
record, procedure, closure, unification, cell, search, solver, thread, by-need sync ,
= { continuation, unforgeable constant, channel, single assign, nondet choice,
sync on partial termination, clocked computation, local cell
}</p>
        <p>Binary characteristics = { Turing completeness, observable non-determinism }
Meta-paradigms</p>
        <p>functional, shared state, logic and constraint, data abstraction, message passing,
= { concurrent dataflow, algorithmic search, constrained execution, reactive ,
dataflow and message passing, functional concurrent dataflow
}</p>
      </sec>
      <sec id="sec-5-3">
        <title>The table below illustrates an example of the structure used in our taxonomy, specifically applied to the deterministic logic paradigm. Details the core concepts, computational properties, and position of the paradigm within the evolutionary path of the taxonomy, highlighting its relationships with related paradigms.</title>
        <p>Figure 4: Taxonomy of programming paradigms</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Roy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Haridi</surname>
          </string-name>
          , Concepts,
          <source>Techniques, and Models of Computer Programming</source>
          , The MIT Press, Cambridge, Massachusetts,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cimadamore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <article-title>Integrating java and prolog using java 5.0 generics and annotations</article-title>
          ,
          <source>in: Proceedings of the 6th International Workshop on Multiparadigm Programming with ObjectOriented Languages (MPOOL)</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Ostermayer</surname>
          </string-name>
          ,
          <article-title>Seamless cooperation of java and prolog for rule-based software development</article-title>
          ,
          <source>in: Proceedings of the RuleML</source>
          <year>2015</year>
          <article-title>Challenge and the RuleML 2015 Doctoral Consortium, hosted by the 9th International Web Rule Symposium</article-title>
          (RuleML
          <year>2015</year>
          ), volume CEUR Workshop Proceedings 1417, Berlin, Germany,
          <year>2015</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Banbara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tamura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Inoue</surname>
          </string-name>
          ,
          <article-title>Prolog cafe: A prolog to java translator system</article-title>
          ,
          <source>in: Proceedings of the 16th International Conference on Applications of Declarative Programming and Knowledge Management (INAP</source>
          <year>2005</year>
          ), Springer, Japan,
          <year>2006</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Eichberg</surname>
          </string-name>
          , Compiling Prolog to Idiomatic Java, in: J. P. Gallagher, M. Gelfond (Eds.),
          <source>Technical Communications of the 27th International Conference on Logic Programming (ICLP'11)</source>
          , volume
          <volume>11</volume>
          of Leibniz International Proceedings in Informatics (LIPIcs),
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          , Dagstuhl, Germany,
          <year>2011</year>
          , pp.
          <fpage>84</fpage>
          -
          <lpage>94</lpage>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.ICLP.
          <year>2011</year>
          .
          <volume>84</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Roy</surname>
          </string-name>
          , et al.,
          <article-title>Programming paradigms for dummies: What every programmer should know</article-title>
          ,
          <source>New Computational Paradigms for Computer Music</source>
          <volume>104</volume>
          (
          <year>2009</year>
          )
          <fpage>616</fpage>
          -
          <lpage>621</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <source>Theories of Programming Languages</source>
          , Cambridge University Press,
          <year>1998</year>
          . doi:
          <volume>10</volume>
          .1017/ cbo9780511626364.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gabbrielli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Martini</surname>
          </string-name>
          ,
          <source>Programming Languages: Principles and Paradigms</source>
          , Undergraduate Topics in Computer Science, 1 ed., Springer London,
          <year>2010</year>
          . doi:
          <volume>10</volume>
          .1007/978- 1-
          <fpage>84882</fpage>
          - 914- 5.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K. C.</given-names>
            <surname>Louden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Lambert</surname>
          </string-name>
          ,
          <source>Programming Languages: Principles and Practices</source>
          ,
          <source>Cengage Learning</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Vandeloise</surname>
          </string-name>
          ,
          <article-title>Programming paradigms: Taxonomy poster (supplementary material for ”rethinking paradigmatic collaboration: new metrics for inter-paradigm synergy in software engineering”</article-title>
          ),
          <year>2024</year>
          . https://doi.org/10.5281/zenodo.11079624.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jazayeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mandrioli</surname>
          </string-name>
          , Fundamentals of Software Engineering, Prentice Hall,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>N. U.</given-names>
            <surname>Eisty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Carver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Moulton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Nam</surname>
          </string-name>
          ,
          <article-title>Testing research software: A case study</article-title>
          ,
          <source>in: Computational Science - ICCS</source>
          <year>2020</year>
          , volume
          <volume>12143</volume>
          of Lecture Notes in Computer Science, Springer, Cham,
          <year>2020</year>
          , pp.
          <fpage>444</fpage>
          -
          <lpage>456</lpage>
          . doi:
          <volume>10</volume>
          .1007/978- 3-
          <fpage>030</fpage>
          - 50436- 6\_
          <fpage>33</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Vandeloise</surname>
          </string-name>
          ,
          <article-title>Metrics of collaboration across programming paradigms and languages: Comprehensive dataset (supplementary material for ”rethinking paradigmatic collaboration: new metrics for inter-paradigm synergy in software engineering”</article-title>
          ),
          <year>2024</year>
          . https://doi.org/10.5281/zenodo.11077187.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Vandeloise</surname>
          </string-name>
          ,
          <article-title>Towards a quantitative evaluation of paradigmatic collaboration: insights from java-prolog and beyond (supplementary material for ”rethinking paradigmatic collaboration: new metrics for inter-paradigm synergy in software engineering”</article-title>
          ),
          <year>2024</year>
          . https://doi.org/10.5281/zenodo. 13381795.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>