MétaCan
Menu
Retour à la cohorte
Enregistrement W1548497223 · doi:10.5772/5936

How Do Programmers Think?

2008· book-chapter· en· W1548497223 sur OpenAlexaff
Anthony Cox, Maryanne L. Fisher

Notice bibliographique

RevueInTech eBooks · 2008
Typebook-chapter
Langueen
DomaineComputer Science
ThématiqueSoftware Engineering Research
Établissements canadiensSaint Mary's University
Organismes subventionnairesnon disponible
Mots-clésComputer scienceRegular expressionProgramming languageAlternation (linguistics)Concatenation (mathematics)Theoretical computer scienceExpression (computer science)CompilerContext (archaeology)Closure (psychology)PerlOperator (biology)Control flowMathematicsArithmeticLinguistics

Résumé

récupéré en direct d'OpenAlex

Regular expressions are an example of a regular language and are a subset of both the context free and the context sensitive languages.As the syntactic structure of many computer programming languages can be described using a context-free grammar, regular expressions can be viewed as a simplified and restricted programming language.While lacking many of the more sophisticated programming language features (e.g., types, functions), regular expressions still provide users with sequencing, alternation, and iteration constructs, and thus provide an abstract view of basic control-flow features.Concatenation can be regarded as a form of sequencing where the elements of an expression containing concatenation must occur in a specific, linear sequence.The "or" operator, represented with a vertical bar |, provides alternation and permits one to choose between two options, just as an "if-then-else" statement permits the choice of two alternatives.Finally, the Kleene closure, represented by a superscript asterisk * functions as an iteration operator and performs a role similar to looping constructs (e.g., "do", "while", or "for" in the C programming language).Thus, regular expressions can be viewed as simple programs with basic control-flow constructs, but with no explicit data management.Alternatively, regular expressions are used in computer software, such as grep, vi, and Perl, as a mechanism to describe the targets of search operations.For this role, regular expressions provide a pattern description mechanism with pattern matches identifying desired search solutions.For example, the expression [eE][nN][dD] identifies the term "end" where the letters can independently be in upper or lower case (e.g., "eNd", "ENd", "END").Regular languages, while being highly formalized and restrictive with regard to their expressiveness, are never-the-less a form of language.It has been documented that humans develop the ability to read before they develop the ability to write (Salvatori, 1983).Consequently, by comparing novice's skills as they learn to read (i.e., applying) and write (i.e., creating) regular expressions, one can examine the relationship of formal languages to natural languages (e.g., English) and potentially permit research on the use of natural language to be applied to computer programming.Increased understanding of regular expression use can therefore provide understanding of how we, as humans, interact with computers when using formal languages.That is, understanding the cognitive skills associated with lower level formal languages provides insight on the use of higher level imperative style languages such as Fortran, C++, or Pascal. www.intechopen.com Advances in Human-Computer Interaction 72While there has been significant research on algorithms for automated matching and manipulation of regular expressions (Hopcraft & Ullman, 1979), there has been little research on the human element of these systems.Insight into the manipulation of regular expressions provides insight into the manipulation of formal languages, and hence on computer programming-a foundational task in human-computer interaction.In this chapter, we address this deficiency and explore the cognition underlying programming by examining performance on the manipulation of regular expressions.The remainder of this chapter is organised as follows.A brief overview of regular expressions in the context of formal language theory is first provided.Then, we present the first of two studies that we conducted to investigate performance on expression application (i.e., matching) and creation tasks.The results of the second, revised, study are then presented, after which we describe a third study exploring the similarity between regular and Boolean expressions.Finally, the chapter concludes with an examination of some future research directions.

Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.

Comment cette classification a été obtenuedéplier

Prédiction machine sur la base complète

Imitation des enseignants

Ni prévalence calibrée, ni vérité terrain. Validation humaine à venir. Le volet Gemma est une étiquette directe du modèle pour chaque travail de la base, lue sur la notice réduite au titre. Le volet Codex est un classifieur appris des 10 348 étiquettes directes de Codex et calibré sur les taux pondérés de l'échantillon; les champs sans appui suffisant ne portent aucun appel Codex. Le mode candidate est l'union des deux volets; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont pas des étiquettes humaines.

score de la tête « metaresearch » (Codex)0,007
score de la tête « metaresearch » (Gemma)0,026
Version: metacan-v3-hybrid-931329e0061cStatut de validation: machine_predicted_unvalidated
Catégories candidatesaucune
Catégories consensuellesaucune
DomaineSignal candidat: aucune · Signal consensuel: aucune
Devis d'étudeSignal candidat: Théorique ou conceptuel · Signal consensuel: aucune
GenreSignal candidat: Empirique · Signal consensuel: aucune
Score de désaccord entre enseignants0,026
Score d'incertitude au seuil0,087

Scores du classifieur distillé par catégorie (deux têtes)

CatégorieCodexGemma
Métarecherche0,0070,026
Méta-épidémiologie (sens strict)0,0010,000
Méta-épidémiologie (sens large)0,0000,000
Bibliométrie0,0010,002
Études des sciences et des technologies0,0030,008
Communication savante0,0110,017
Science ouverte0,0020,003
Intégrité de la recherche0,0030,006
Charge utile insuffisante (le modèle a refusé de juger)0,0260,017

Scores machine (provisoires)

Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.

Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.

Tête enseignante Opus0,031
Tête enseignante GPT0,250
Écart entre enseignants0,220 · la distance entre les deux têtes enseignantes sur ce seul travail
Statut de validationscore_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découle

Classification

machine, non validée

Prédiction automatique; un appel candidat d’une seule source (Gemma direct ou Codex distillé), pas un consensus.

Les modèles n’ont appliqué aucune catégorie : rien dans la taxonomie ne correspondait à ce travail.
Devis d'étudeThéorique ou conceptuel
Domainenon disponible
GenreEmpirique

Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».

En bref

Citations0
Publié2008
Routes d'admission1
Résumé présentoui

Explorer davantage

Même revueInTech eBooksMême sujetSoftware Engineering ResearchTravaux en français237 207