Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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>

home | help