MétaCan
Menu
Back to cohort
Record W1548497223 · doi:10.5772/5936

How Do Programmers Think?

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

Bibliographic record

VenueInTech eBooks · 2008
Typebook-chapter
Languageen
FieldComputer Science
TopicSoftware Engineering Research
Canadian institutionsSaint Mary's University
Fundersnot available
KeywordsComputer scienceRegular expressionProgramming languageAlternation (linguistics)Concatenation (mathematics)Theoretical computer scienceExpression (computer science)CompilerContext (archaeology)Closure (psychology)PerlOperator (biology)Control flowMathematicsArithmeticLinguistics

Abstract

fetched live from 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.

Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.

How this classification was reachedexpand

Full frame machine prediction

Teacher imitation

Not calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.

metaresearch head score (Codex)0.007
metaresearch head score (Gemma)0.026
Version: metacan-v3-hybrid-931329e0061cValidation status: machine_predicted_unvalidated
Candidate categoriesnone
Consensus categoriesnone
DomainCandidate signal: none · Consensus signal: none
Study designCandidate signal: Theoretical or conceptual · Consensus signal: none
GenreCandidate signal: Empirical · Consensus signal: none
Teacher disagreement score0.026
Threshold uncertainty score0.087

Distilled classifier scores by category (both heads)

CategoryCodexGemma
Metaresearch0.0070.026
Meta-epidemiology (narrow)0.0010.000
Meta-epidemiology (broad)0.0000.000
Bibliometrics0.0010.002
Science and technology studies0.0030.008
Scholarly communication0.0110.017
Open science0.0020.003
Research integrity0.0030.006
Insufficient payload (model declined to judge)0.0260.017

Machine scores (provisional)

The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.

Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.

Opus teacher head0.031
GPT teacher head0.250
Teacher spread0.220 · how far apart the two teachers sit on this one work
Validation statusscore_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from it

Classification

machine, unvalidated

Machine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.

The models applied no category: nothing in the taxonomy fit this work.
Study designTheoretical or conceptual
Domainnot available
GenreEmpirical

How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".

Quick stats

Citations0
Published2008
Admission routes1
Has abstractyes

Explore more

Same venueInTech eBooksSame topicSoftware Engineering ResearchFrench-language works237,207