# Automaton

An automaton is an abstract machine model that performs computations on input through states or configurations.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Introducing pg\_re2, fast, RE2-powered regular expressions in Postgres

DevFeed: [Introducing pg\_re2, fast, RE2-powered regular expressions in Postgres](<https://devfeed.tech/articles/introducing-pg-re2-fast-re2-powered-regular-expressions-in-postgres-5337.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/introducing-pg_re2-regex-in-postgres>)

Author: David Wheeler; Philip Dubé

Published: 2026-07-08T18:12:04Z

Content type: article

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [article](<https://devfeed.tech/tags/article.md>), [aws](<https://devfeed.tech/tags/aws.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [extension](<https://devfeed.tech/tags/extension.md>), [open](<https://devfeed.tech/tags/open.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This article introduces pg_re2, a PostgreSQL extension that adds fast RE2-powered regular expression functions. It explains the performance and compatibility rationale, compares RE2 with PostgreSQL's native engine, and reports benchmark results showing RE2 outperforming the native functions in the tested cases.

### Source excerpt

Introducing pg_re2, a Postgres extension that brings ClickHouse's fast RE2-powered regular expressions to Postgres, with benchmarks and pg_clickhouse pushdown integration.

## Solving regex crosswords with Z3

DevFeed: [Solving regex crosswords with Z3](<https://devfeed.tech/articles/solving-regex-crosswords-with-z3-21962.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/regex-crosswords-z3/>)

Author: Nelson Elhage

Published: 2025-10-21T14:00:00Z

Content type: tutorial

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dfa](<https://devfeed.tech/tags/dfa.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [performance](<https://devfeed.tech/tags/performance.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

This technical post explains how to solve regular-expression crossword puzzles with a Z3-backed solver. It describes encoding regular expressions as deterministic finite automata, using a Python library to convert regex syntax to finite-state machines, and exploring solver performance and implementation improvements.

### Source excerpt

For a while now, I've been fascinated by Z3 and by SMT solving more broadly. While on pat leave recently, I was reminded of the existence of regular-expression crossword puzzles, and allowed myself to get nerdsniped by writing a Z3-backed solver. I expected to spend perhaps an afternoon cranking out a quick solver; I ended up getting sucked into understanding and debugging Z3 performance, and learning far more about Z3 and about SMT than I expected.

## Conway's Game of Life

DevFeed: [Conway's Game of Life](<https://devfeed.tech/articles/conway-s-game-of-life-4506.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/921267023/0/baeldung/cs>)

Author: DrMax

Published: 2025-07-06T22:40:06Z

Content type: tutorial

Language: en

Sources: [Baeldung - CS](<https://devfeed.tech/sources/baeldung-cs.md>)

Topics: [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [algorithms-complexity](<https://devfeed.tech/tags/algorithms-complexity.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [learn](<https://devfeed.tech/tags/learn.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial explaining Conway's Game of Life as a cellular automaton, including its grid-based cell states, neighbor-driven rules, and emergent patterns.

### Source excerpt

Learn about various pattern types in Conway's Game of Life. The post Conway's Game of Life first appeared on Baeldung on Computer Science. Related Stories How to Find the Complexity of an Algorithm Raft Consensus Algorithm Gale-Shapley Algorithm

## Turing Machines--A Primer

DevFeed: [Turing Machines--A Primer](<https://devfeed.tech/articles/turing-machines-a-primer-40218.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/07/04/turing-machines-a-primer/>)

Published: 2011-07-04T16:35:44Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [acceptance](<https://devfeed.tech/tags/acceptance.md>), [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [computers](<https://devfeed.tech/tags/computers.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [decidability](<https://devfeed.tech/tags/decidability.md>), [halting-problem](<https://devfeed.tech/tags/halting-problem.md>), [input](<https://devfeed.tech/tags/input.md>), [machine](<https://devfeed.tech/tags/machine.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [primer](<https://devfeed.tech/tags/primer.md>), [process](<https://devfeed.tech/tags/process.md>), [pushdown-automata](<https://devfeed.tech/tags/pushdown-automata.md>), [state](<https://devfeed.tech/tags/state.md>), [symbols](<https://devfeed.tech/tags/symbols.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

This tutorial introduces Turing machines as a model of computation. It defines their states, tape symbols, input symbols, initial state, accepting and rejecting states, and transition function, then explains how the tape, read-write head, state transitions, and halting behavior work.

### Source excerpt

We assume the reader is familiar with the concepts of determinism and finite automata, or has read the corresponding primer on this blog. The Mother of All Computers Last time we saw some models for computation, and saw in turn how limited they were. Now, we open Pandrora's hard drive: Definition: A Turing machine is a tuple $ (S, \Gamma, \Sigma, s_0, F, \tau)$, where $ S$ is a set of states, $ \Gamma$ is a set of tape symbols, including a special blank symbol $ b$, $ \Sigma \subset \Gamma$ is a set of input symbols, not including $ b$, $ s_0$ is the initial state, $ A \subset S$ is a set of accepting states, $ R \subset S$ is a set of rejecting states, $ \tau: S - (A \cup R) \times \Gamma \to S \times \Gamma \times \left \{ L, R \right \}$ is a partial function called the transition function, where $ L, R$ correspond to "left shift" and "right shift," respectively.

## Determinism and Finite Automata--A Primer

DevFeed: [Determinism and Finite Automata--A Primer](<https://devfeed.tech/articles/determinism-and-finite-automata-a-primer-40217.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/07/02/determinism-and-finite-automata-a-primer/>)

Published: 2011-07-02T23:41:30Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [computing](<https://devfeed.tech/tags/computing.md>), [context-free-languages](<https://devfeed.tech/tags/context-free-languages.md>), [deterministic-finite-automata](<https://devfeed.tech/tags/deterministic-finite-automata.md>), [finite-state-machines](<https://devfeed.tech/tags/finite-state-machines.md>), [function](<https://devfeed.tech/tags/function.md>), [input](<https://devfeed.tech/tags/input.md>), [language](<https://devfeed.tech/tags/language.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [nondeterministic-finite-automata](<https://devfeed.tech/tags/nondeterministic-finite-automata.md>), [primer](<https://devfeed.tech/tags/primer.md>), [pushdown-automata](<https://devfeed.tech/tags/pushdown-automata.md>), [regular-languages](<https://devfeed.tech/tags/regular-languages.md>), [string](<https://devfeed.tech/tags/string.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

This primer introduces computation as a function that maps input to output, then develops a more rigorous model based on finite alphabets and strings. It explains how a computational model recognizes a language by accepting or rejecting strings.

### Source excerpt

The first step in studying the sorts of possible computations (and more interestingly, those things which cannot be computed) is to define exactly what we mean by a "computation." At a high level, this is easy: a computation is simply a function. Given some input, produce the appropriate output. Unfortunately this is much too general. For instance, we could define almost anything we want in terms of functions. Let $ f$ be the function which accepts as input the date of California Super Lotto drawings, and returns the set of winning numbers for that date.

## Turing Machines and Conway's Dreams

DevFeed: [Turing Machines and Conway's Dreams](<https://devfeed.tech/articles/turing-machines-and-conway-s-dreams-40215.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/06/30/turing-machines-and-conways-dreams/>)

Published: 2011-06-30T20:50:04Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>)

Tags: [cellular](<https://devfeed.tech/tags/cellular.md>), [cellular-automata](<https://devfeed.tech/tags/cellular-automata.md>), [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [conway](<https://devfeed.tech/tags/conway.md>), [infinite](<https://devfeed.tech/tags/infinite.md>), [life](<https://devfeed.tech/tags/life.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [period](<https://devfeed.tech/tags/period.md>), [programming](<https://devfeed.tech/tags/programming.md>), [recursion](<https://devfeed.tech/tags/recursion.md>), [theory](<https://devfeed.tech/tags/theory.md>), [turing-machine](<https://devfeed.tech/tags/turing-machine.md>), [turing-machines](<https://devfeed.tech/tags/turing-machines.md>)

### AI overview

The article examines Conway's Game of Life patterns that do not stabilize, including Gosper's glider gun and puffers that produce continuing activity. It connects these patterns to computability, explaining that infinite looping is necessary for Turing-complete computation.

### Source excerpt

Additional Patterns Last time we left the reader with the assertion that Conway's game of life does not always stabilize. Specifically, there exist patterns which result in unbounded cell population growth. Although John Conway's original conjecture was that all patterns eventually stabilize (and offered $50 to anyone who could provide a proof or counterexample), he was proven wrong. Here we have the appropriately named glider gun, whose main body oscillates, expelling a glider once per period.

## Introduction to Cellular Automata

DevFeed: [Introduction to Cellular Automata](<https://devfeed.tech/articles/the-wild-world-of-cellular-automata-40214.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/06/29/conways-game-of-life/>)

Published: 2011-06-29T21:08:45Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Cellular automaton](<https://devfeed.tech/topics/cellular-automaton.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>)

Tags: [cellular-automata](<https://devfeed.tech/tags/cellular-automata.md>), [computability-theory](<https://devfeed.tech/tags/computability-theory.md>), [conus](<https://devfeed.tech/tags/conus.md>), [conway](<https://devfeed.tech/tags/conway.md>), [life](<https://devfeed.tech/tags/life.md>), [mathematica](<https://devfeed.tech/tags/mathematica.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rules](<https://devfeed.tech/tags/rules.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [turing-machine](<https://devfeed.tech/tags/turing-machine.md>)

### AI overview

An introductory tutorial on cellular automata, explaining cells, states, transition rules, simultaneous updates, and a one-dimensional binary example.

### Source excerpt

Cellular Automata There is a long history of mathematical models for computation. One very important one is the Turing Machine, which is the foundation of our implementations of actual computers today. On the other end of the spectrum, one of the simpler models of computation (often simply called a system) is a cellular automaton. Surprisingly enough, there are deep connections between the two. But before we get ahead of ourselves, let's see what these automata can do.

## Regexp performances and Finite Automata

DevFeed: [Regexp performances and Finite Automata](<https://devfeed.tech/articles/regexp-performances-and-finite-automata-34389.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2010/09/regexp-performances-and-finite-automata/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2010-09-26T19:00:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>)

Tags: [dfa](<https://devfeed.tech/tags/dfa.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [perl](<https://devfeed.tech/tags/perl.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This article examines regular-expression performance through the lens of finite automata, contrasting NFA and DFA-based implementation techniques. It also discusses PostgreSQL's regular-expression implementation and the author's preference for using awk in some file-searching situations.

### Source excerpt

The major reason why I dislike perl so much, and ruby too, and the thing I'd want different in the Emacs Lisp API so far is how they set developers mind into using regexp. You know the quote, don't you? Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. That said, some situations require the use of regexp -- or are so much simpler to solve using them than the maintenance hell you're building here ain't that big a drag. The given expressiveness is hard to match with any other solution, to the point I sometime use them in my code (well I use rx to lower the burden sometime, just see this example).