Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
smalltalktransform [2021/05/05 11:55] christian [Translations] |
smalltalktransform [2022/02/28 13:51] christian [Get startet] |
||
---|---|---|---|
Line 4: | Line 4: | ||
Transformations are declared for each package, class and method. | Transformations are declared for each package, class and method. | ||
- | The transformations are applied some code to generate the target Smalltalk code. | + | The transformations are applied |
This is the next more general version of the [[GemstoneFileout|Gemstone Fileout]] project. | This is the next more general version of the [[GemstoneFileout|Gemstone Fileout]] project. | ||
- | + | < | |
- | The only working example is the PDFtalk | + | <div style=" |
- | + | A < | |
- | It is intended to cover other dialects (Pharo, VisualAge, Smalltalk/ | + | </ |
+ | </ | ||
===== Get startet ===== | ===== Get startet ===== | ||
Load bundle **{Smalltalk Transform Project}** from the [[: | Load bundle **{Smalltalk Transform Project}** from the [[: | ||
- | As Example, load package [Gemstone Fileout PDFtalk] | + | Load also the following packages |
- | ===== Smalltalk is not Smalltalk ===== | + | * [Gemstone Fileout PDFtalk] |
- | + | * [Squeak Fileout PDFtalk] | |
- | While all Smalltalk dialects share the same message sending paradigm with the same basic syntax. Many dialects extended the syntax (VW: namespace and literal bindings, Squeak: dynamic array, Amber: literal dictionaries, | + | * [VASmalltalk Fileout PDFtalk] |
- | + | These contain | |
- | The basic class library (Object, Number, Collection, Class etc.) with standardized selectors are the same in all dialects. But each one extends the library and classes with their own ways of doing things. | + | |
- | + | ||
- | There are some cross dialect libraries like Glorp. | + | |
- | + | ||
- | The UI, at the other end, is very different in all dialects, so that porting is almost impossible. | + | |
- | + | ||
- | ==== Translations ==== | + | |
- | + | ||
- | === Methods === | + | |
- | + | ||
- | The source code is in methods which syntax may be different in the target system. | + | |
- | + | ||
- | There are 3 kinds of changes concerning methods: | + | |
- | * **Ignore** This method of the source system should not be written to the target system | + | |
- | * **Add** This method is added to the target system. The method does not exist in the source system. | + | |
- | * **Replace** This method of the source system is replaced by the body of the target | + | |
- | * **Rewrite** The body of the source method is transformed by a Rewrite rule | + | |
- | + | ||
- | === Classes === | + | |
- | + | ||
- | === Packages === | + | |
- | + | ||
- | ==== Rewrite Tool ==== | + | |
- | The code transformations are done with the rewrite | + | Read in the [[SmalltalkTransformDocumentation|Smalltalk transform documentation]] about the technical details and how to use this tool. |