FreeBSD Manual Pages
ABL(1) cao-vlsi reference manual ABL(1) NAME abl - Prefixed representation for boolean functions DESCRIPTION libablmmm.a is 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 #define CAR and CDR. A doublet is implemented with a MBK chain_list. Expression is the generic term for a boolean function represented by an ABL. An expression can be an atomic expression or an operator expres- sion. The function f = a is represented by an atomic expression whereas f = (or a b) is represented by an operator expression. An atomic ex- pression is made up of a single doublet having the NEXT pointer equal to NULL and DATA pointer 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 #define CDR. Then each argument is accessible by the functionnal #de- fine CAR. 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 #define and 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" (#define in "logmmm.h"). Functionnal #define ATOM - checks the kind of an expression (atomic or oper- ator expression). CAR - returns the DATA pointer of a doublet. CADR - returns the DATA pointer of the NEXT pointer of a doublet. CDR - returns the NEXT pointer of a doublet. OPER - returns the operator number of an operator ex- pression. VALUE_ATOM - returns the associated char * of an atomic ex- pression. Functions and procedures addHExpr - 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 a chain_list. supportPtype_listExpr - returns the support of an expression in a ptype_list. wPMExpr - returns 1 if the pattern matching is possible be- tween two expressions. SEE ALSO log(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.0-RELEASE+and+Ports>