[squeak-dev] C++ parser in Smalltalk?

Igor Stasenko siguctua at gmail.com
Mon Jun 30 20:10:09 UTC 2008

2008/6/30 Peter William Lount <peter at smalltalk.org>:
> Hi Frank,
> Your project seems interesting. I'd like to know more. Any links? Papers?
> I need to learn a lot of ick stuff really fast and unfortunately that stuff
> is really icky, yup the ick is a number of very large monster C/C++ systems
> with tons of core assembly thrown in for extra fun. Some custom
> visualizations like I've done for learning monster Smalltalk systems will
> save a lot of time.
> I'm into accelerated learning of detailed systems using the visual cortex of
> our brains since the human visual system has massive bandwidth that word
> based and auditory thought channels lack, although I suppose one could
> convert large systems into a symphony. Anyway visual representations of
> large systems can help in quickly learning about how they are constructed
> and identify where one needs to focus extra attention.
> On a recent large Smalltalk project the visual map required about eight feet
> by three feet just to map out the connections between the larger object
> assemblies. It helped provide an overview of the system. Programmers who'd
> been working with the system for years had no idea that it was shaped that
> way.
> There is a video from a few years back on Channel 9 over at ick, Microsoft,
> where they tell of a very large map of their 5,000 + DLLs for XP. They built
> it by reading the raw DLLs and determining the links between them all. They
> consider their OS a fractured system living in these DLLs which we know as
> DLL Hell. It's a Hell for them too! Ah, the fun of eating your own
> technology. They found redundant code (sometimes 12+ copies of the same
> function which leads to all sorts of fun fixing bugs and providing security
> patches) and were better able to reduce their icky factor a little making XP
> more stable and less tangled that their prior systems.
> Aside from the visualization aspect I'd like to computer the System
> Brittleness Factor (LSBF) for each system to see how rigid or flexible the
> code base is. This helps identify where it can be improved and where code
> can be shrunk by increasing flexibility through merging of methods/classes
> that really are similar. As we know C/C++ code is more "rigid" due to it's
> use of typed variables which very strictly limits the object flow paths
> through the program. Even with C++ Templates which enables a measure of
> polymorphism for C++ programs the rigidity can be measured. Typically the
> code needed for a system expands when typed variables are added. This is a
> problem for many reasons including comprehension due to the increased brain
> bandwidth required to simply read the ick.
> Also for the other reasons I stated in the earlier emails: "All your
> languages and systems belong to us [Smalltalk Style Systems]." The sCurge of
> C based systems has been with us way to long, it's time to take back the
> night and the day. ;-) Gotta have fun...
> Check out the awesome work of LLVM. http://www.LLVM.org. Runtime Dynamic
> Recompiled on the Fly C based systems on the way and in part financed by
> Apple. Liberation from GCC is on the horizon. Imagine a Squeak that can
> recompile it's VM on the fly and then "hop" over to the new one dropping the
> old version from memory!!! We do this all the time in Smalltalk, it'll be
> nice for C to finally catch up after four decades! It's also nice to see a
> vendor like Apple attempting to bring this capability to their C based
> operating systems and applications technologies.

If you able to compile things at run time, then why compiling C at all?
See Exupery & friends.

> All the best,
> Peter
> [ | peter at smalltalk dot org ]
> ps. Ick is a technical term referring to the ick factor of a system. Ick is
> the opposite of elegant, beauty, simplicity. I work to identify ick and
> remove it from systems when possible or simply to fix the ick so that it
> doesn't stop a system from working.

Best regards,
Igor Stasenko AKA sig.

More information about the Squeak-dev mailing list