Next generation programming style?

Started by
23 comments, last by tuxx 21 years, 10 months ago
quote:Original post by George2
On these forum''s I once read something about aspect oriented programming, however I don''t have a clue wat it is. I believe there researching it at universities. Anybody can give a brief explanation about it ?

Any nonsense gets researched at universities, particularly in the computing departments. Not that I think AOP is nonsense, just that it''s not an indicator a technology has any real-world value. AOP is now beginning to be used in the real-world - I use ApectJ in a limited capacity for my work. I suggest you check out the AspectJ website to find out more.
Advertisement
Wow! Lotsa posts in one day! I think that''s very interesting with all of those different languages. I thought that XP was just a way to organize a software development company (two people to a computer doesn''t seem to fit into programming paragdims), but hell, I just read the first 5 pages of XP Explained. Keep the posts coming in!

--------------------------
Lucid code is an oxymoron!
--------------------------
[email=dumass@poppet.com]dumass@poppet.com[/email]
quote:Original post by Anonymous Poster
Any language for which there exists an interpreter can also be compiled. Suppose there exists instruction X that is implemented in an interpreter by a finite sequence of machine instructions, {S}. X can therefore be compiled to {S}. There exists compilers for Smalltalk, Haskell, Scheme, etc.

Those are assembly emitting compilers for Smalltalk, Haskell, etc...? Do they implement the entire language? I was under the impression that smalltalk was interpretted. What about Lisp or ML?
And you can cheat it, like VB1/2/3/4/5 where they pack byte-code into the exe, and launch the interpretor from the exe. But I wouldn''t consider that native compilation.

quote:
Template meta-programming - the power of functional programming with the efficiency (and familiarity) of imperative programming.


I agree that any language to implement this would be most useful. The template functionality in C++ is just a way to infer a type from how the objects are used.

quote:
Type inference is something that functional languages have been doing for quite awhile. Throw in anonymous-classes or make functions first-class and I''d code in it in a heart beat.

Loki’s Generalized Functor allows one to create invokable objects* that have Full Value Semantics . The implication being, generalized Functors are invokable First Class Citizens. It’s here, in C++, today! (on good compilers anyway <img src="tongue.gif" width=15 height=15 align=middle>)<br>"Modern C++" by Andrei Alexandrescu, see sig for dl<br>It''s not quite the flexibility you have with LISP, and I''ll grant you it seems like your fighting the language and compiler sometimes, but I think that''s mostly due to the utter lack of experience anyone has using it. I''m practically and expert on Loki, and I can''t even compile the whole thing <img src="wink.gif" width=15 height=15 align=middle><br><br>And remember C++ isn''t set in stone, there''s something called ''concepts'' that will likely be part of the language one day. It''s like an interface definition for template policy classes.<br><br>*(from functions, methods, function pointers, method pointers, or other functors) <br><br>I''m, not sure how anonymous functions would benefit C++ - it''s a decidely script-like feature (e.g. very useful in scripting/script-like languages, not very useful in compiled ones).<br><br><br>heheh Aspect based programming sounds alot like Mutliple Inheritence, but without using those dirty words. They refer to it by it''s alias, "mixin-inheritence" - I see how it does a more though. reverse inheritence…. that is interesting. I can see how that would be useful - and can see how it''s buildable in Java. (I can''t help but think ComeFrom though =))<br> </b> <br><br>Magmai Kai Holmlor<br><br>"Oh, like <i>you''ve </i> never written buggy code" - Lee<br><br><small>[Look for information | <a href="http://www.gamedev.net/reference/start_here/">GDNet Start Here</a> | <a href="http://www.gamedev.net/community/forums/search.asp">GDNet Search Tool</a> | <a href="http://www.gamedev.net/community/forums/faq.asp">GDNet FAQ</a> | <a href="http://msdn.microsoft.com/library/">MSDN RTF[L]</a> | <a href="http://www.sgi.com/tech/stl/">SGI STL Docs</a> | <a href="http://www.google.com/">STFW</a> | <a href="http://www.tuxedo.org/~esr/faqs/smart-questions.html">Asking Smart Questions</a> ]<br><br>[Free C++ Libraries | <a href="http://www.boost.org/">Boost</a> | <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a> | <a href="http://www.awl.com/cseng/titles/0-201-70431-5/loki.zip">Loki</a> | <a href="http://www.osl.iu.edu/research/mtl/">MTL</a> | <a href="http://www.oonumerics.org/blitz/">Blitz++</a> | <a href="http://sourceforge.net/projects/wxwindows/">wxWindows</a>]<br></small>
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
quote:Original post by Magmai Kai Holmlor
I agree that any language to implement this would be most useful. The template functionality in C++ is just a way to infer a type from how the objects are used.

The C++ compiler facilities are Turing complete but have to be programmed in a functional style. This is why C++ is known as a "two-level language".
quote:
And remember C++ isn''t set in stone, there''s something called ''concepts'' that will likely be part of the language one day. It''s like an interface definition for template policy classes.

I was at a presentation that Gabriel dos Reis gave of his concept additions, and it didn''t seem well-enough considered for inclusion into the standard. Certainly, Stroustrup was very skeptical. I suspect a library facility would be the preferred route.
quote:
Aspect based programming sounds alot like Mutliple Inheritence, but without using those dirty words.

No, AOP should be non-intrusive, else it defeats the point of "separation of concerns".
quote:
Those are assembly emitting compilers for Smalltalk, Haskell, etc...? Do they implement the entire language? I was under the impression that smalltalk was interpretted. What about Lisp or ML?
And you can cheat it, like VB1/2/3/4/5 where they pack byte-code into the exe, and launch the interpretor from the exe. But I wouldn''t consider that native compilation.


A google search for "<insert language here> compiler" will answer the first question. As for whether or not they implement the entire language, I do not know for sure. If not there isn''t any fundamental reason aside from lack of time. I''ve written a compiler (x86 asm) for a subset of Scheme myself , so I know it can be done in practice. As for Lisp, there even exists specialized hardware to execute code. See http://www.cs.rice.edu/~shriram/LispM/. My favorite picture is the one that reads "Will recur for samosas".

This topic is closed to new replies.

Advertisement