Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!culdev1!drw From: drw@culdev1.UUCP (Dale Worley) Newsgroups: comp.lang.misc,comp.lang.c Subject: software ICs vs. libraries Message-ID: <1745@culdev1.UUCP> Date: Wed, 11-Nov-87 19:26:33 EST Article-I.D.: culdev1.1745 Posted: Wed Nov 11 19:26:33 1987 Date-Received: Sat, 14-Nov-87 05:06:41 EST Organization: Cullinet Software, Westwood, MA, USA Lines: 29 Xref: mnetor comp.lang.misc:890 comp.lang.c:5379 I may be talking through my hat, but... peter@sugar.UUCP (Peter da Silva) writes: | In article <1691@culdev1.UUCP>, drw@culdev1.UUCP (Dale Worley) writes: | > Another feature of "software ICs" comes from the fact that they are | > part of an object-oriented system. One can actually write, say, a | > linked list manager that will work on objects of *any* type. In most | > languages, this is impossible to do in a library routine. | | You can do it in 'C'. In fact the standard 'C' library for the Amiga comes | with exactly this tool. | Insert(ListHead, ListNode, PredNode) | [etc.] Well, I'll bet not. You can do a lot with macros, and if you're only dealing with pointers to things, you can cast to (char *), but consider a somewhat messier example where these two tricks don't work. Say, a priority queue system, where the priorities aren't of a type fixed in advance. Of course you can *do* any of these in C by representing anything messy as a (char *) pointing at it, but this is just implementing an object-oriented system... Dale -- Dale Worley Cullinet Software ARPA: culdev1!drw@eddie.mit.edu UUCP: ...!seismo!harvard!mit-eddie!culdev1!drw If you get fed twice a day, how bad can life be?