Bibliographic record
Abstract
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 imitationNot 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.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.007 | 0.026 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.000 |
| Bibliometrics | 0.001 | 0.002 |
| Science and technology studies | 0.003 | 0.008 |
| Scholarly communication | 0.011 | 0.017 |
| Open science | 0.002 | 0.003 |
| Research integrity | 0.003 | 0.006 |
| Insufficient payload (model declined to judge) | 0.026 | 0.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.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
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".