# FreeBSD Manual Pages

ABL(1) cao-vlsi reference manual ABL(1)NAMEabl- Prefixed representation for boolean functionsDESCRIPTIONlibablmmm.ais a library that enables to represent a boolean function in a LISP-like form. An ABL is a prefixed internal representation for a boolean function having standard operators as OR,NOR,NAND,XOR,NOT and AND. An ABL is only made up of doublets. A doublet is composed of two fields wich are accessible by the functionnal#defineCARandCDR. A doublet is implemented with a MBKchain_list.Expressionis the generic term for a boolean function represented by an ABL. An expression can be an atomic expression or an operator expres- sion. The functionf=ais represented by an atomic expression whereasf=(orab)is represented by an operator expression. An atomic ex- pression is made up of a single doublet having theNEXTpointer equal to NULL andDATApointer equal to the identifier pointer. A constant atomic expression is an atomic expression having the string "'0'" or "'1'" as identifier. An operator expression is more complicated than an atomic expression. It's a list of items, the first item is the head operator of the ex- pression and the following items are the arguments of the expression. It's possible to go trough the arguments by calling the functionnal#defineCDR. Then each argument is accessible by the functionnal#de-fineCAR. An argument can be recursively an atomic or an operator ex- pression. The arity of an operator expression is the number of argu- ments of the first level. Functions are divided into two groups, the low level functions are written with#defineand are used to manage the ABL internal form, the high level functions are used to manage the boolean expressions. All functions are defined in the file "prefbib.c" (#definein "logmmm.h").Functionnal#defineATOM- checks the kind of an expression (atomic or oper- ator expression).CAR- returns theDATApointer of a doublet.CADR- returns theDATApointer of theNEXTpointer of a doublet.CDR- returns theNEXTpointer of a doublet.OPER- returns the operator number of an operator ex- pression.VALUE_ATOM- returns the associatedchar*of an atomic ex- pression.FunctionsandproceduresaddHExpr- adds a new arguments at the head of an operator expression.addQExpr- adds a new arguments at the queue of an operator expression.anyExpr- returns the value of a logical OR applied on the results of the application of a function on the ar- guments of an operator expression.changeOperExpr- changes the operator of the head of an expres- sion.charToOper- converts an operator string into an operator num- ber.copyExpr- copies an expression.createAtom- creates an atomic expression.createBinExpr- creates a binary operator expression with an eventual merging of the operator.createExpr- creates the head of an operator expression.deleteNumExpr- removes the i-th argument in an operator expres- sion.devXor2Expr- converts XOR 2 to OR-AND.devXorExpr- removes XOR in an expression.displayExpr- displays an expression in a prefixed notation.displayInfExpr- displays an expression in infixed notation.equalExpr- checks that two expressions are strictly equal.equalVarExpr- checks that two expressions are syntactically equal.everyExpr- returns the value of a logical AND applied on the results of the application of a function on the ar- guments of an operator expression.exprToChar- converts an expression into a string.charToExpr- converts a string into an expression.flatArityExpr- flattens the operators of an expression.flatPolarityExpr- translates the inverters of an expression to the level of atomic expressions.freeExpr- frees an expression.identExpr- gives an identifier from an operator expression.lengthExpr- returns the number of arguments in an expression.mapCarExpr- creates a new expression by applying a function to all arguments of an operator expression.mapExpr- applies a procedure to all the arguments of an operator expression.maxExpr- returns the highest argument of an operator ex- pression.minExpr- returns the lowest argument of an operator ex- pression.normExpr- normalizes an expression.notExpr- complements an expression and eventually does a simplification.numberAtomExpr- returns the number of atoms in an expression.numberOccExpr- returns the number of time an atom appears in an expression.numberOperBinExpr- returns the number of equivalent binary operators in an expression.operToChar- converts an operator number into an operator string.profExpr- returns the depth of an expression.profAOExpr- returns the depth of an expression without taking the inverters into account.searchExpr- searches for a specific atom in an expression.searchNumExpr- fetches the i-th argument in an operator expres- sion.searchOperExpr- searches for an operator in an expression.simplif10Expr- makes simplifications on an expression including constant atomic expressions.simplifNotExpr- makes simplifications on an expression including inverters.sortExpr- sorts an expression.substExpr- copies an expression by substituting a given atom by an expression.substPhyExpr- substitutes an atomic expression by an expression within an expression.supportChain_listExpr- returns the support of an expression in achain_list.supportPtype_listExpr- returns the support of an expression in aptype_list.wPMExpr- returns 1 if the pattern matching is possible be- tween two expressions.SEE ALSOlog(1),mbk(1),addHExpr(3),addQExpr(3),anyExpr(3),changeOper-Expr(3),charToExpr(3),charToOper(3),copyExpr(3),createAtom(3),cre-ateBinExpr(3),createExpr(3),deleteNumExpr(3),devXor2Expr(3),devXor-Expr(3),displayExpr(3),displayInfExpr(3),equalExpr(3),equalVar-Expr(3),everyExpr(3),exprToChar(3),flatArityExpr(3),flatPolarity-Expr(3),freeExpr(3),identExpr(3),lengthExpr(3),mapCarExpr(3),map-Expr(3),maxExpr(3),minExpr(3),notExpr(3),normExpr(3),numberAtom-Expr(3),numberOccExpr(3),numberOperBinExpr(3),operToChar(3),prof-Expr(3),profAOExpr(3),searchExpr(3),searchNumExpr(3),searchOper-Expr(3),simplif10Expr(3),simplifNotExpr(3),sortExpr(3),subst-Expr(3),substPhyExpr(3),supportChain_listExpr(3),supportPtype_list-Expr(3).PMExpr(3). ASIM/LIP6 October 1, 1997 ABL(1)

NAME | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:

<https://www.freebsd.org/cgi/man.cgi?query=abl&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>