Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 16 submissions in the queue.
posted by janrinok on Wednesday March 27 2024, @08:12PM   Printer-friendly
from the I-didn't-know-that-... dept.

https://buttondown.email/hillelwayne/archive/why-do-regexes-use-and-as-line-anchors/

Last week I fell into a bit of a rabbit hole: why do regular expressions use $ and ^ as line anchors?1

This talk brings up that they first appeared in Ken Thompson's port of the QED text editor. In his manual he writes: b) "^" is a regular expression which matches character at the beginning of a line.

c) "$" is a regular expression which matches character before the character (usually at the end of a line)

QED was the precursor to ed, which was instrumental in popularizing regexes, so a lot of its design choices stuck.

Okay, but then why did Ken Thompson choose those characters?


Original Submission

 
This discussion was created by janrinok (52) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by bzipitidoo on Thursday March 28 2024, @05:12AM (7 children)

    by bzipitidoo (4388) on Thursday March 28 2024, @05:12AM (#1350631) Journal

    I've been studying the history of computation, and I can say that the reason for many of the decisions is a desperate hurry. Just as soon as it's good enough, get that new tech out the door before the competition does.

    What do you do when in a big hurry? You don't make up something completely new, you take whatever existing ideas there are that are familiar to you and that can be most easily and quickly adapted to the new need. This is why ASCII so slavishly follows the layout of that 19th century invention, the typewriter. Except that for the letters, it kept to a far, far older convention: alphabetic order, which goes back about 3800 years. And why not? You figure that the pioneers of typing worked out a decent choice and arrangement of symbols, why reinvent that wheel? EBCDIC on the other hand ultimately can trace its ancestry to another 19th century invention, the telegraph. The typewriter itself is no exception to this principle, having been inspired by pianos. That is why our computer keyboard is called a "key" board and not a button board or some other term. "key" comes from pianos, which comes from the musical notion of a "key" in which a piece of music is played.

    As to programming languages, they borrowed heavily from mathematical notation. The hurrying was a little different in this case. With the success of FORTRAN in the mid 1950s, computer scientists realized people would all go off and do their own thing if they didn't come up with a standard, quick. They produced ALGOL 58, then ALGOL 60. ALGOL was very influential, but it didn't nip in the bud efforts to make more programming languages.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by hendrikboom on Thursday March 28 2024, @01:24PM (2 children)

    by hendrikboom (1125) on Thursday March 28 2024, @01:24PM (#1350674) Homepage Journal

    And, of course, Algol 68. Which introduced an algebra of types, which became the type system of C after some syntax changes that made it harder to understand.

    • (Score: 2) by hendrikboom on Thursday March 28 2024, @01:48PM

      by hendrikboom (1125) on Thursday March 28 2024, @01:48PM (#1350678) Homepage Journal

      And some semantic changes that made it significantly less secure. And easier to implement.

    • (Score: 3, Informative) by bzipitidoo on Thursday March 28 2024, @08:12PM

      by bzipitidoo (4388) on Thursday March 28 2024, @08:12PM (#1350753) Journal

      And then, after ALGOL 68, the language just vanished. Did you ever wonder what happened to it? Pascal, that's what. ALGOL W was an alternate vision for the next version of ALGOL that was rejected in favor of what became ALGOL 68. ALGOL W was then used as the basis for Pascal.

  • (Score: 2) by ElizabethGreene on Thursday March 28 2024, @02:44PM (2 children)

    by ElizabethGreene (6748) Subscriber Badge on Thursday March 28 2024, @02:44PM (#1350690) Journal

    How do you pronounce ASCII and EBCDIC? Mine are Ass-key and Ebb-ka-dick.

    • (Score: 2) by tangomargarine on Thursday March 28 2024, @06:01PM

      by tangomargarine (667) on Thursday March 28 2024, @06:01PM (#1350733)

      Ebs-dick/Eb-stick

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
    • (Score: 2) by cereal_burpist on Saturday March 30 2024, @03:45AM

      by cereal_burpist (35552) on Saturday March 30 2024, @03:45AM (#1350964)
      I like to pronounce ASCII such that it rhymes with Hawaii. Usually raises a few eyebrows :-)
  • (Score: 2) by krishnoid on Thursday March 28 2024, @09:32PM

    by krishnoid (1156) on Thursday March 28 2024, @09:32PM (#1350761)

    Citations requested. There's a lot of value in being able to distinguish which decisions were made quickly [computer.org] from ones that were released after a careful design process, and how they anti/correlate to the quality of the result.