Re: Using the RM for ADTs
Date: Fri, 10 Jul 2009 21:29:31 -0700 (PDT)
Message-ID: <ea7cfdfc-3a67-46c0-bc77-b436d086eea0_at_n11g2000yqb.googlegroups.com>
On Jul 10, 8:52 pm, "Brian Selzer" <br..._at_selzer-software.com> wrote:
> Just a thought. It might be worthwhile to think of components recursively.
To get reuse one needs to use DAG structures, not trees. For example,
circuit values could be named in a flat namespace using a relation,
allowing for arbitrary reuse between those circuits with the
constraint that there are no cycles. A circuit "instantiates" another
circuit by name. The most useful circuits tend to instantiated within
many other circuits.
A circuit could distinguish between its external and internal nodes,
allowing the system to have stronger integrity constraints.
Received on Sat Jul 11 2009 - 06:29:31 CEST
> Supposing that identifiers are assigned to simple components and their
> leads, then nodes are completely defined as collections of component leads.
> Define a component as one of the following:
>
> 1. A simple component.
> 2. A collection of components connected by a node.
>
> Note that a simple component can have 2 or more leads and that a node may
> only connect one component. For example, a quad, 2-input OR gate that has
> 14 leads (Vcc, gnd, 8 inputs and 4 outputs), can be transformed into a
> single 5 input OR gate by connecting the outputs of two of the OR gates to
> the inputs of a third OR gate, and connecting the output of the third OR
> gate to an input of the fourth OR gate. Each of the three connections is a
> node consisting of two leads of the same component.
>
> Thinking of components recursively may simplify the pattern matching
> because each component can then be represented as either a function
> of 2 or more variables for simple components, or a composition of
> functions that share variables. For example, suppose that d1(a,b) and
> d2(c,d) represent simple components (diodes), then d2(c,d) is d2(c,b)
> by alpha conversion so that or1(a,c,b) can be d1(a,b).d2(c,b), where
> the node that connects d1 and d2 is represented by the variable b.