Bracmat is software for analysis and transformation of uncharted and complex data.
Pattern matching as a programming language construct is strangely absent or incomplete in popular programming languages. Functional languages (Haskell, Scala, F#, etc.) have tree patterns but lack associative patterns, Perl has associative patterns, but lacks tree patterns, Tom has associative tree patterns, but does not let you embed expressions in patterns. Java and C++ have no language construct for pattern matching, but can be fortified with some library that implements a pattern language (XPath, SQL, regex,…). However, an embedded pattern language does not, in turn, allow embedded Java or C++ statements inside a pattern, so patterns get only as expressive and powerful as the pattern language allows.
Bracmat has tree patterns that can be associative and that can contain embedded expressions, so Bracmat is a programming language and at the same time a pattern language.
Of course, Bracmat also has string patterns. The same syntax is used for tree patterns and string patterns.
Ease of use, clarity and expressive power of Bracmat’s patterns can compete with RE, SQL, XQuery and Prolog. Modelling data in Bracmat is a small step away from understanding and controlling it.
There is documentation and there are over 300 examples on Rosettacode.org that can be compared with implementations in other programming languages.
You can download Bracmat from GitHub.
If you want to try Bracmat right now, run Bracmat in your own browser.
From A Journey to the World Under-Ground
From this Land of Atheists, I travell'd
on over a steep Mountain to the City of
Bracmat, which was situated in the Plain at
the Foot of the Mountain. The Inhabi-
tants are Junipers. The first Person I met,
came directly rushing at me, and threw me
backwards. I did not well understand this,
and asking the Reason of it, the Juniper
begg'd my Pardon a thousand Times. Pre-
sently after, another with a Staff he had in
his Hand, gave me a Blow upon the Reins
that almost took away my Senses : But in
the same Moment he made a long Harangue
to me in Excuse of his Imprudence. Sus-
pecting, therefore, this People to be either
totally blind, or very weak-sighted, I took
Care to avoid every one I met. In fact, all
this arose from the exquisite Sense of Sight
which some are here endued with. They
can clearly discern remote Objects, which
are impenetrable to vulgar Eyes; but then
they do not see what is nearer and almost at
hand. These are call'd Makatti ; and they
devote themselves principally to the Studies
of Metaphysicks and Astronomy. They
are of very little Service in the World, by
reason of their too delicate Vision. They
make very pretty minute Philosophers ; but in
solid Matters and Things of daily Use, they
commit innumerable Blunders. However,
the Government makes some Use of them,
and sends them to the Mines for the Disco-
very of Metals. For tho' they see scarce
any Thing upon the Surface of the Earth,
their Sight exerts itself upon any Thing be-
neath it. I concluded from hence, that
there are some who are blind from too great
a Delicacy in the Organs of Vision, and
that they would see better if their Eyes
were worse.