Computing Reviews

Finite-state techniques :automata, transducers and bimachines
Mihov S., Schulz K., Cambridge University Press,New York, NY,2019. 324 pp.Type:Book
Date Reviewed: 10/05/20

The mathematical theory of automata is one of the great ideas of computer science, easy to state and understand, yet with great explanatory power and potential for problem solving.

When I first encountered finite-state machines many years ago [1], the emphasis was theoretical. Since then, the emphasis has shifted dramatically. Currently, a great deal of work and research is being done to solve large, complex problems using finite-state machines along with different software tools.

This book fits along these lines. It aims to provide a rigorous mathematical background, coupled with a set of executable programs, for pattern searching in strings and for matching-based text rewriting. The executable programs, which the authors assure us have been fully tested and are correct, are created using C(M), an experimental declarative language. The language, along with the programs, are explained in detail in the book; actually, the C(M) language is explained in greater detail in the book than on its website [2].

In evaluating this book, I ran into a fatal issue, making all others irrelevant in comparison; therefore, I will only mention this issue. The C(M) website [2] offers 64-bit binaries for Mac OS and for Linux. I was unable to install the Mac binaries and obtain a valid executable application on a MacBook Pro running the current version of macOS. This is a serious issue. Rightfully so, given the sad state of affairs with rampant malicious software, Apple has made it increasingly difficult, and now nearly impossible, to install suspicious software.

I’ll quote directly from Apple Support:

macOS includes a technology called Gatekeeper, that’s designed to ensure that only trusted software runs on your Mac. The safest place to get apps for your Mac is the App Store. Apple reviews each app in the App Store before it’s accepted and signs it to ensure that it hasn’t been tampered with or altered. [...] When you install Mac apps, plug-ins, and installer packages from outside the App Store, macOS checks the Developer ID signature to verify that the software is from an identified developer and that it has not been altered. [3]

To install applications from sources not registered with Apple, you must bypass the Apple security protections. And that is not easy. I am not a novice when it comes to macOS. Attempting to install the Mac C(M) binaries, I took every possible step allowed, including disabling security protocols and putting my machine at risk. That is simply unreasonable and unacceptable.

The authors have several choices:

(1) They could register C(M) with Apple. This would be best. In that case, C(M) would come packaged as a file that would be trivially installed.
(2) They could offer the C(M) source code so that each developer could compile his own version of C(M).
(3) They could offer an external platform where users could execute C(M) remotely.

Failing that, it may be difficult or impossible to install C(M) on an Apple computer.

As of now, for me, this book is for intellectual interest but essentially useless for its intended purpose. I strongly recommend first verifying that C(M) will actually run on the machines where it will be used before committing to using the book.


1)

Denning, P. J.; Dennis, J. B.; Qualitz, J. E. Machines, languages, and computation. Prentice-Hall, Englewood Cliffs, NJ, 1978.


2)

, The C(M) language http://lml.bas.bg/~stoyan/lmd/C(M).html (11/21/2019).


3)

, Safely open apps on your Mac https://support.apple.com/en-us/HT202491 (11/21/2019).

Reviewer:  Edgar R. Chavez Review #: CR147075 (2102-0021)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy