IBM Rhapsody RulesComposer documentation? - customization

The ADA rules for the Code Generation of Rhapsody by default, as far as I'm understanding it, relies on this java proyect <Rhapsody Instalation path\Sodius\RiA_CG\compiled_rules\RiA_CG.jar>
I have a big problem as I need to model an statechart and the generated code contains some bindings to OXF framework. I don't want to depend on a library that I don't know, I don't know how it behaves and I don't know its maintenance.
I have been spending weeks reading about customizing code generation in Rhapsody using RulesComposer, but the official documentation is like a recipe, you follow tones of steps but what you are doing is not really explained.
If someone can share me a video or a a link to a good explanation about it, even if it is not for the ADA language, I would be very grateful.

Related

Implement a Register Allocator in LLVM

I'm working on my project for completion undergraduate courses, consisting of an experimental analysis of registers allocation algorithms. For this task, I am using the set of tools from the LLVM project.
However, I have read the documentation of the LLVM project and not yet found a way to put the pieces of the puzzle together. So far I know:
As passes work as engage them to LLVM and know I must implement MachineFunctionPass pass.
I follow some suggestions to look at the Basic Allocator code, but could not understand much.
The allocator I intend to implement is based on graph coloring heuristics, as the theory of operation of such methods I’m well aware.
So I look for is some sort of "How to", a defined set of steps to implement such allocator. It sounds like carelessness, but I have to deliver the work in about six months and I'm a little confused.
If anyone can give me some guidance or reference to any supporting material (besides the own documentation), I would be grateful.
My English may be a little wrong, I am a Brazilian student.
Well, after a while I have finished my project and have written an tutorial of How to write an LLVM register allocator using the RegAllocBase interface.
The tutorial have been written in reStructuredText and it's available on GitHub: https://github.com/nael8r/How-To-Write-An-LLVM-Register-Allocator

Gang of Four: lexi editor c++ source

I'm reading "Design Patterns: Elements of Reusable OOSW". In chapter two, the authors provide a case study of an editor they refer to as Lexi, which seems to be written in C++. I've looked around everywhere, but the only useful link I could find said this:
The Gof tell us in a note that Lexi is
based on "Doc, a text editing
application developed by Calder". But
this paper only outlines an editor,
without any source. And I even believe
today that Lexi never truly existed as
a program.
The link provides Delphi source. I'm after C++, cause that's what I'm comfortable with, and that's what's used in the book.
Does anybody know where I can find C++ source for Lexi? If the original never existed, it would be good to find something that I can use as a base. I really don't feel like writing my own text editor from scratch just so I can work through the case study in this book.
Doc was developed using the InterViews UI toolkit. I believe that doc source is part of the InterViews distribution. Doc was used to typeset Paul's thesis. (Paul Calder was my lecturer at Flinders University)
If you look at the InterViews code you might be surprised. It was developed before modern C++ existed. For example, there are no templates. And there are no comments in the code.
To my understanding, Lexi never existed. It was created as an example for the book by GoF.
Maybe a Java implementation can help, being it more similar to c++. Here it is:
jexieditor - A WYSIWYG editor based on JavaSE. I have not had a look at the code yet, anyway
I may be showing my age here but are you sure about C++? I have a funny feeling that when that book came out originally it may have been oriented toward Smalltalk. Its just something nagging at the back of my mind, I can't substantiate it I'm afraid
I'm currently implementing Lexi analog, pls take a look https://github.com/romaonishuk/LexI. Implementation is still in progress, but most of the described in GoF patterns and concepts are implemented using C++.
This is the code source of LEXI, written in Delphi unfortunately for you: LEXI sources.
It appears that the source code might be on the CD-ROM version of Design Patterns that came out in 1998. According to the Amazon listing, the CD contains (among other things):
Sample code demonstrating pattern implementation
Furthermore,
All patterns are compiled from real-world examples and include code that demonstrates how they may be implemented in object-oriented programming languages such as C++ and Smalltalk. Readers who already own the book will want the CD to take advantage of its dynamic search mechanism and ready-to-install patterns.
Whether these code samples include the full Lexi source is impossible to tell from the listing, and the current price of the CD (£86.87) is rather high. But it might be worth checking if any local libraries have the CD in stock.
I was just trying to find out if a real working Lexi version exists, to have a concrete reference, but I didn't find it.
I found this Java version on GitHub: https://github.com/AmitDutta/lexi
I don't know, maybe it could be useful for someone's purpose here.

Formal Specification

Is there any library/tool for formal specification in C++, such as JML for Java, and Data Contracts in C#?
EDIT:
I am not looking for something more specific than, it's practical to use and adds some value/quality.
EDIT2:
I am not looking for UML tools, please see the examples I have provided.
IBM Rational Rose UML software generates C++ code according to the complete UML model.
Never ever used it though, not really I mean. Just a brief look and only at UML functionalities.
Have a look at Larch/C++ : Larch/C++ Reference Manual
frama-c - fascinating, jml inspired, i keep trying to use it but can't make the time - specific to c i believe. but should at least provide pointers to find c++ tools
If you're looking for a simple tool to do UML without a fuss, StarUML is an open source (Windows only) project. I've used IBM Rational Rose and Microsoft Visio (with UML extension) and I have to say StarUML is just so nicely done.
I've never tried anything else than the class diagrams, and my experience is mainly for informal specifications and small projects. It also has some code generation features, but I've never tried them.

Is it necessary to learn Java for contributing to an open source project?

I am more into C/C++. But many of my seniors here in college ask me to learn Java if I want to contribute to an open source project.. I'm in dilemma. what to do? Can't we do a design project in C/C++?
There are plenty of open source C and C++ projects - as well as loads in virtually any other language you can come up with.
Of course it's never a bad idea to learn another language, but don't feel too constrained by "only" knowing C and C++.
If you want to contribute to a specific open source project which is written in Java, of course, that's a different matter... but if you're trying to find C and C++ open source projects, some of the major hosting sites support querying by project language, I believe. For example, you can look at Google Code C++ projects and SourceForge projects tagged C++.
is it necessary to learn java for contributing to an open source project?
#: No
what to do??
#: Do whatever you are passionate with
Can't we do a design project in c/c++??
#: Of course you can, lots of non-java projects out there
Select an interesting C or C++ project and contribute to it. For example look at Tortoise SVN - it's in Visual C++, it's widely used, it's actively developed and its authors accept any useful contributions.
Not unless you want to participate in a Java project, and then again, you can learn it pretty quick if you know C++.
It would only be necessary to learn java if the open-source project you want to contribute is in java. There are so many open-source projects in c/c++ as well. The great example is Linux
If you are good at c/C++ there are plenty of OS projects in c/c++.
They are also fair amount of project in Dot Net and c#.
Contribute where you are strong...
It up to you in which domain you would like to be an expert, so select an open source project based on your interests and start contributing to that domain which would definitely help you in future.
You should also have the fundamental knowledge of other technologies so to learn a new thing is always good.
It up to you in which domain you would like to be an expert, so select an open source project based on your interests and start contributing to that domain which would definitely help you in future.
You should also have the fundamental knowledge of other technologies so to learn a new thing is always good.
Yes, you could contribute in areas like documentation/setup/deployment issues if not.

Does anyone have experience with Clipsmm?

I have been looking at using CLIPS as an expert system for a simulator i am working on, and so i had a look at clipsmm. The only problem is that their sourceforge page has broken links and private forums.
I was just curious if anyone has had experience with clipsmm (i have learnt how to use CLIPS as a stand alone already), and i just need a little help getting the c++ wrapper working.
Any help that someone could give me would be great.
Thanks
-Craig
(sorry can't make custom tags for this so had to use generic ones)
mm is "minus minus", the standard trope for a C++ "founding" pkg (as in eg c-- itself). This is on the one hand in cognitive dissonance with its failure to be just standard C++ with no external dependencies and on the other hand consonant with its use of glibmm. It's vacuous and these dependencies are a major hassle, but I don't know of anything better for C++ encapsulation of CLIPS.
Well, I don't have direct experience, but I happen to have been the original author of a very similar set of wrappers for Ada.
I developed what I needed for a school project, and released it to the Public Domain in hopes that somebody else could build on it or find it useful. Some folks have used it, but not enough to support a full-fledged project. It looks like the userbase in the C++ realm isn't a lot better.
My suggestion to you would be to accquaint yourself with how your C++ compiler handles C bindings, download what code you can find, and dive right into it. You aren't likely to find a lot of very experienced help in a small niche like this.
If I'm wrong, I'm happy for you.