Loading ...
Sorry, an error occurred while loading the content.

Generative Programming

Expand Messages
  • Armin Roehrl
    Hi, been looking at: Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki, Ulrich Eisenecker, Addison Wesley, 2000 The book
    Message 1 of 11 , Jan 1, 2002
    • 0 Attachment
      Hi,

      been looking at: " Generative Programming: Methods, Tools, and Applications"
      by Krzysztof Czarnecki, Ulrich Eisenecker, Addison Wesley, 2000

      The book claims: Using generative programming techniques, you can solve
      software engineering problems in families, rather than individually, saving
      time and coding effort.

      Does anybody have any experience with Generative programming?
      I'm still rather unconvinced.

      What do you think?

      Thx,
      Armin.

      -----------------------------------------------
      Armin Roehrl, http://www.approximity.com
    • jbrewer999
      ... solve ... individually, saving ... I think it depends on your domain. For example, I used to work on a CAD program. I don t see how generative
      Message 2 of 11 , Jan 1, 2002
      • 0 Attachment
        --- In extremeprogramming@y..., Armin Roehrl <armin@a...> wrote:
        > The book claims: Using generative programming techniques, you can
        solve
        > software engineering problems in families, rather than
        individually, saving
        > time and coding effort.
        >
        > What do you think?

        I think it depends on your domain. For example, I used to work on a
        CAD program. I don't see how generative programming would help
        there. On the other hand, all form-based business applications
        appear to be instances of the same meta-application. If you could
        factor out all the commonality, you could crank them out at
        tremendous speed and at a tremendous savings in labor.

        John Brewer
        Jera Design

        Extreme Programming FAQ: http://www.jera.com/techinfo/xpfaq.html
      • dvydra2
        I predict a great future for generative programming, but many tools will have to be developed to make it palatable for some of us. Several developers I ve
        Message 3 of 11 , Jan 1, 2002
        • 0 Attachment
          I predict a great future for generative programming, but many tools
          will have to be developed to make it palatable for some of us.
          Several developers I've approached on this subject expressed
          uneasiness with loosing control of their code and not being able to
          browse to any code quickly. Others abhorred certain commercial GUI
          generators.
          I believe when the right tool will come along many more people will
          start using GP.

          One language I use is Rebol. It promotes the idea of dialecting –
          small custom languages.
          Here is my translation of Rebold VID (Visual Interface Dialect) in
          Java

          public class SimpleFtpUI extends JFrame { /** layout
          backdrop white
          files-list: text-list
          across
          button "Upload" [upload() refresh-file-list()]
          button "Download" [download()]
          **/}

          This code will obviously have to be preprocessed before it can be
          compiled in Java. I think that an IDE that can be configured to
          seamlessly generate java code from higher-level languages will make
          this approach more appealing.

          Also, I found this table of contents in a new book on Java from
          DevelopMentor.

          Component Development for the Java™ Platform
          by Stuart Dabbs Halloway

          7. Generative Programming.

          Why Generate Code?

          Object Oriented Approaches to Modeling Variabilities.
          Thinking in Terms of Bind Time.
          Separating Specification From Bind Time.
          Choosing a Specification Language.
          Reuse Requires More than One Use.
          A Little Domain Analysis is a Dangerous Thing.

          Why Generate Code with Java?

          Type Information Acts As a Free Specification Document.
          Class Loading Supports Flexible Binding Modes.
          Java Source is Easy To Generate.
          Java Binary Classes are Easy To Generate.
          Code Generation Boosts Performance.
          Levels of Commitment to Code Generation.

          A Taxonomy of Bind Times and Modes.
          Code Generation in RMI.
          Code Generation in JSP.
          Code Generation in EJB.
          The Deployment Descriptor.
          Alternate Implementations.
          Generating Strongly Typed Collections.
          Code Generation Language versus Target Language.
          Generating Custom Serialization Code.

          --- In extremeprogramming@y..., Armin Roehrl <armin@a...> wrote:
          > Hi,
          >
          > been looking at: " Generative Programming: Methods,
          Tools, and Applications"
          > by Krzysztof Czarnecki, Ulrich Eisenecker, Addison Wesley, 2000
          >
          > The book claims: Using generative programming techniques, you can
          solve
          > software engineering problems in families, rather than
          individually, saving
          > time and coding effort.
          >
          > Does anybody have any experience with Generative programming?
          > I'm still rather unconvinced.
        • ianrae2000
          ... a ... CAD is where I first heard about the notion -- although in the metal fabrication industry it s called family of parts . Often a bracket comes in
          Message 4 of 11 , Jan 2, 2002
          • 0 Attachment
            --- In extremeprogramming@y..., "jbrewer999" <jbrewer@j...> wrote:
            > --- In extremeprogramming@y..., Armin Roehrl <armin@a...> wrote:
            > > The book claims: Using generative programming techniques, you can
            > solve
            > > software engineering problems in families, rather than
            > individually, saving time and coding effort.
            > [..]
            > I think it depends on your domain. For example, I used to work on
            a
            > CAD program. I don't see how generative programming would help
            > there.

            CAD is where I first heard about the notion -- although in the metal
            fabrication industry it's called 'family of parts'. Often a bracket
            comes in many sizes where dimensions are based on a set of rules.
            Larger parts are not simply isometrically scaled versions of smaller
            parts -- drill hole sizes might be "if bracket_width < 3.5 then
            diameter=.25 else diameter=.5". People wanted a CAD system that let
            the user create a rule-based drawing.

            --Ian
          • ianrae2000
            ... Tools, and Applications ... solve ... individually, saving ... Charles Simonyi at microsoft research worked on Intentional Programming. It was similar to
            Message 5 of 11 , Jan 2, 2002
            • 0 Attachment
              --- In extremeprogramming@y..., Armin Roehrl <armin@a...> wrote:
              > Hi,
              >
              > been looking at: " Generative Programming: Methods,
              Tools, and Applications"
              > by Krzysztof Czarnecki, Ulrich Eisenecker, Addison Wesley, 2000
              >
              > The book claims: Using generative programming techniques, you can
              solve
              > software engineering problems in families, rather than
              individually, saving
              > time and coding effort.
              >
              > Does anybody have any experience with Generative programming?
              > I'm still rather unconvinced.
              >

              Charles Simonyi at microsoft research worked on Intentional
              Programming. It was similar to GP in that an 'intention' was a
              language-independent definition of an algorithm or programming
              construct. Think super-hyper-mega C++ templates. The idea was that
              things could be programmed (and tested) once as an intention and then
              multiple versions created for different platforms and time/space
              tradeoffs. A FIFO queue for example..

              It was a holy grail project that aimed to replace programming
              languages with the infinite reuse of intentions. The project web
              page 2 years ago said that IP was being commercialized... Haven't
              seen anything since.



              --Ian
            • dvydra2
              I tried to find it again a month ago on MS Research website and was not able to. I wonder if it was cancelled. dv
              Message 6 of 11 , Jan 2, 2002
              • 0 Attachment
                I tried to find it again a month ago on MS Research website and was
                not able to. I wonder if it was cancelled.

                dv
                --- In extremeprogramming@y..., "ianrae2000" <ian.rae@p...> wrote:
                > Charles Simonyi at microsoft research worked on Intentional
                > Programming.
              • Kari Hoijarvi
                I still find intentional programming papers from the publications/search , for example http://research.microsoft.com/scripts/pubs/view.asp?TR_ID=MSR-TR-95-52 I
                Message 7 of 11 , Jan 2, 2002
                • 0 Attachment
                  I still find intentional programming papers from the publications/search ,
                  for example
                  http://research.microsoft.com/scripts/pubs/view.asp?TR_ID=MSR-TR-95-52

                  I heard, that some of the research results are in .NET runtime. I'm visiting
                  microsoft on 16th, maybe I'll ask some old friends.

                  Kari


                  -----Original Message-----
                  From: ianrae2000 [mailto:ian.rae@...]
                  Sent: Wednesday, January 02, 2002 11:05 AM
                  To: extremeprogramming@yahoogroups.com
                  Subject: [XP] Re: Generative Programming


                  --- In extremeprogramming@y..., Armin Roehrl <armin@a...> wrote:
                  > Hi,
                  >
                  > been looking at: " Generative Programming: Methods,
                  Tools, and Applications"
                  > by Krzysztof Czarnecki, Ulrich Eisenecker, Addison Wesley, 2000
                  >
                  > The book claims: Using generative programming techniques, you can
                  solve
                  > software engineering problems in families, rather than
                  individually, saving
                  > time and coding effort.
                  >
                  > Does anybody have any experience with Generative programming?
                  > I'm still rather unconvinced.
                  >

                  Charles Simonyi at microsoft research worked on Intentional
                  Programming. It was similar to GP in that an 'intention' was a
                  language-independent definition of an algorithm or programming
                  construct. Think super-hyper-mega C++ templates. The idea was that
                  things could be programmed (and tested) once as an intention and then
                  multiple versions created for different platforms and time/space
                  tradeoffs. A FIFO queue for example..

                  It was a holy grail project that aimed to replace programming
                  languages with the infinite reuse of intentions. The project web
                  page 2 years ago said that IP was being commercialized... Haven't
                  seen anything since.



                  --Ian







                  To Post a message, send it to: extremeprogramming@...

                  To Unsubscribe, send a blank message to:
                  extremeprogramming-unsubscribe@...

                  ad-free courtesy of objectmentor.com

                  Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                • dvydra2
                  Thanks. The paper is dated 1995. Have there been any real tools released my MS? Thanks, David ... publications/search , ... 52
                  Message 8 of 11 , Jan 2, 2002
                  • 0 Attachment
                    Thanks. The paper is dated 1995. Have there been any real tools
                    released my MS?

                    Thanks,

                    David
                    --- In extremeprogramming@y..., "Kari Hoijarvi" <hoijarvi@m...> wrote:
                    > I still find intentional programming papers from the
                    publications/search ,
                    > for example
                    > http://research.microsoft.com/scripts/pubs/view.asp?TR_ID=MSR-TR-95-
                    52
                    >
                  • jbrewer999
                    ... on ... [...] ... I can see how generative programming would be useful to the _users_ of a CAD system. I can t, at present, see how it would be useful to
                    Message 9 of 11 , Jan 2, 2002
                    • 0 Attachment
                      --- In extremeprogramming@y..., "ianrae2000" <ian.rae@p...> wrote:
                      > --- In extremeprogramming@y..., "jbrewer999" <jbrewer@j...> wrote:
                      > > I think it depends on your domain. For example, I used to work
                      on
                      > a
                      > > CAD program. I don't see how generative programming would help
                      > > there.
                      >
                      > CAD is where I first heard about the notion
                      [...]
                      > People wanted a CAD system that let
                      > the user create a rule-based drawing.

                      I can see how generative programming would be useful to the _users_
                      of a CAD system. I can't, at present, see how it would be useful to
                      the _authors_ of such a system.

                      John Brewer
                      Jera Design

                      Extreme Programming FAQ: http://www.jera.com/techinfo/xpfaq.html
                    • Kari Hoijarvi
                      No real tools released yet. I know that my old friends at MS used intentional programming as an internal tool. I saw an impressive demo in 1997, then they had
                      Message 10 of 11 , Jan 2, 2002
                      • 0 Attachment
                        No real tools released yet. I know that my old friends at MS used
                        intentional programming as an internal tool. I saw an impressive demo in
                        1997, then they had the goal to ship in five years. Two years ago the
                        project moved from research to development and now the research page has
                        expired. Most likely the huge need of developers for the .NET has cut back
                        the schedule quite a bit.

                        It's bad that the presentation slides of Simonyi are not accessible. They
                        we're useful whenever I had to explain metaprogramming to anyone.

                        Kari

                        -----Original Message-----
                        From: dvydra2 [mailto:david@...]
                        Sent: Wednesday, January 02, 2002 1:18 PM
                        To: extremeprogramming@yahoogroups.com
                        Subject: [XP] Re: Generative Programming


                        Thanks. The paper is dated 1995. Have there been any real tools
                        released my MS?

                        Thanks,

                        David
                        --- In extremeprogramming@y..., "Kari Hoijarvi" <hoijarvi@m...> wrote:
                        > I still find intentional programming papers from the
                        publications/search ,
                        > for example
                        > http://research.microsoft.com/scripts/pubs/view.asp?TR_ID=MSR-TR-95-
                        52
                        >


                        To Post a message, send it to: extremeprogramming@...

                        To Unsubscribe, send a blank message to:
                        extremeprogramming-unsubscribe@...

                        ad-free courtesy of objectmentor.com

                        Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                      • ianrae2000
                        ... to the _authors_ of such a system. For authors of editing software there is often a pattern to new features. For example, each shape tool on the palette
                        Message 11 of 11 , Jan 3, 2002
                        • 0 Attachment
                          --- In extremeprogramming@y..., "jbrewer999" <jbrewer@j...> wrote:
                          > --- In extremeprogramming@y..., "ianrae2000" <ian.rae@p...> wrote:
                          >[..]
                          > > People wanted a CAD system that let
                          > > the user create a rule-based drawing.
                          >
                          > I can see how generative programming would be useful to the _users_
                          > of a CAD system. I can't, at present, see how it would be useful
                          to the _authors_ of such a system.

                          For authors of editing software there is often a pattern to new
                          features. For example, each shape tool on the palette (rectangle,
                          ellipse, rounded rectangle, etc) requires an icon, a runtime license,
                          a properties dialog box, mouse tracking behaviour, an OLE automation
                          interface, etc. It's unlikely this can all be handled through
                          polymorphism of a single class heirarchy. Hence the feature's code
                          gets sprinkled all over the system. GP can solve this by centralizing
                          code in a single meta-file (and the GP tool does the sprinkling).

                          Also CAD systems offer "libraries" of canned or boiler-plate drawing
                          elements for a particular vertical market. As the library grows
                          there is usualy an effort to provide some ability for users to
                          customize library elements. As the level of customization grows on
                          mulitple dimensions it soon becomes unwiedly to support 192 different
                          types of window frames. A GP-approach where the CAD system ships
                          with a library-generator solves this problem -- "generate me the six
                          main window frame sizes for the German building code where an R-value
                          equals 2000."

                          --Ian
                        Your message has been successfully submitted and would be delivered to recipients shortly.