flat assembler
Message board for the users of flat assembler.

flat assembler > Programming Language Design > the-ideom

Author
Thread Post new topic Reply to topic
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
MHajduk wrote:
I haven't heard of Ideom before, could you tell something more about it? Are you an author (or co-author) of it?
Ideom is a programming language derived from Plain English which was discussed at length on this site here and where the author Gerry Rzeppa gave me permission to do so.
The first version of the-ideom was written and compiled in Plain English.
Ideom is now it's own language and the-ideom is written in Ideom and can compile itself to an x86 Windows command line executable.

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com


Last edited by Mike Gonta on 06 Sep 2019, 18:20; edited 1 time in total
Post 21 Aug 2019, 20:49
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6023
Location: Poland
Mike Gonta wrote:
MHajduk wrote:
I haven't heard of Ideom before, could you tell something more about it? Are you an author (or co-author) of it?
Ideom is a programming language derived from Plain English which was discussed at length on this site here and where the author Gerry Rzeppa gave me permission to do so.
The first version of The Ideom was written and compiled in Plain English.
Ideom is now it's own language and The Ideom is written in Ideom and can compile itself to an x86 Windows command line executable.
Great. Smile
Is there a homepage of Ideom? Where we could get a compiler?
Post 21 Aug 2019, 21:00
View user's profile Send private message Visit poster's website Reply with quote
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
MHajduk wrote:
Mike Gonta wrote:
MHajduk wrote:
I haven't heard of Ideom before, could you tell something more about it? Are you an author (or co-author) of it?
Ideom is a programming language derived from Plain English which was discussed at length on this site here and where the author Gerry Rzeppa gave me permission to do so.
The first version of the-ideom was written and compiled in Plain English.
Ideom is now it's own language and the-ideom is written in Ideom and can compile itself to an x86 Windows command line executable.
Great. Smile
Is there a homepage of Ideom? Where we could get a compiler?
Not yet!
I've been so busy with the-ideom (adding new features, etc.) that I haven't had the chance to work on a site or even an open source at GitHub.
The Ideom, while different, is still very similar to Plain English which can be downloaded at http://osmosian.com/cal-4700.zip

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com


Last edited by Mike Gonta on 06 Sep 2019, 18:22; edited 1 time in total
Post 21 Aug 2019, 21:10
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6023
Location: Poland
Mike Gonta wrote:
Not yet!
I've been so busy with The Ideom (adding new features, etc.) that I haven't had the chance to work on a site or even an open source at GitHub.
The Ideom, while different, is still very similar to Plain English which can be downloaded at http://osmosian.com/cal-4700.zip
OK. Anyway, it's interesting to get to know that something brand new has been born. Smile
Post 21 Aug 2019, 21:24
View user's profile Send private message Visit poster's website Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6023
Location: Poland
BTW, now Ideom is pure ASCII (7-bit). Are there any plans to support UTF-8 in the future? Or it's a basic feature that won't be changed?
Post 21 Aug 2019, 21:29
View user's profile Send private message Visit poster's website Reply with quote
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
MHajduk wrote:
BTW, now Ideom is pure ASCII (7-bit). Are there any plans to support UTF-8 in the future? Or it's a basic feature that won't be changed?
The ascii vs Unicode discussion concerning programming languages is as old as Unicode.
The art/hobby (vs commercial programmer job) is indeed a very small niche and requires a common language in order to be shared (this international member forum being in English is a good example).
One issue would be the "extra work" required to say, parse comments in UTF-8 for example.
A bigger issue is that the-ideom uses simple English grammar rules in order to "know how to compile". Some of these rules include indefinite/definite articles (a, an, some / the) which as I understand it are not present in Slavic languages for example.

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com


Last edited by Mike Gonta on 06 Sep 2019, 18:23; edited 1 time in total
Post 21 Aug 2019, 22:02
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6023
Location: Poland
Mike Gonta wrote:
The art/hobby (vs commercial programmer job) is indeed a very small niche and requires a common language in order to be shared (this international member forum being in English is a good example).
I see. If Ideom seems to be targeted to small and rather hermetic group of programmers from various countries of origin then English (being a kind of Latin of our times) becomes the most reasonable choice, indeed. Smile
Post 25 Aug 2019, 09:05
View user's profile Send private message Visit poster's website Reply with quote
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
fasmg - the hidden backend
Some compilers generate source code which is then compiled or assembled by another compiler (or assembler).
the-ideom is not such a compiler.
the-ideom generates x86 machine code directly from the routine's fragments (slightly different from either an AST or an RTL).
the-ideom is completely written in Ideom.
Axioms are the basic CPU instructions which are defined in Ideom as Ideom machine language statements.
These axioms are produced by fasmg using a slightly modified listing macro.
This:
Code:
To add a number to a pointer;
To add a number to another number:
  mov edi, [esp+4] ; the number
  mov ecx, [esp+8] ; the other number
  mov eax, [edi]
  add [ecx], eax    
Produces this:
Code:
To add a number to a pointer;
To add a number to another number:
x86 $8B7C2404.             \  mov edi, [esp+4] ; the number
x86 $8B4C2408.             \  mov ecx, [esp+8] ; the other number
x86 $8B07.                 \  mov eax, [edi]
x86 $0101.                 \  add [ecx], eax    
The x86 is an Ideom statement which generates the x86 machine code in the fasmg produced Ideom routine.
The other way that the Ideom generates x86 machine code is with short helper Ideom routines which assemble the x86 machine code
to stitch the axioms together and produce a WIN32 PE executable.
Here is an example of one such routine:
Code:
To assemble (add DWORD [ebp+) an offset (],) a number to a hex string:
Append $8345 to the hex string.
If the offset is short,
  append the offset as a byte to the hex string.
Otherwise
  add 64 to the hex string's last's target;
  append the offset to the hex string.
If the number is short,
  append the number as a byte to the hex string.
Otherwise
  subtract 2 from the hex string's first's target;
  append the number to the hex string.
\ x86 $83450102.             \  add DWORD [ebp+1], 2
\ x86 $8385FE00000002.       \  add DWORD [ebp+0xFE], 2
\ x86 $814501FF000000.       \  add DWORD [ebp+1], 0xFF
\ x86 $8185FE000000FF000000. \  add DWORD [ebp+0xFE], 0xFF    
This is one of a number of ways that the Ideom generates the smallest possible binary using simple optimizations.

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com


Last edited by Mike Gonta on 13 Sep 2019, 16:36; edited 4 times in total
Post 02 Sep 2019, 11:37
View user's profile Send private message Reply with quote
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
My humble comment (on comments)
the-deom has a feature unique amongst compilers* - the decorator line.
All compiler users tend to create lines (and borders) comprised of symbol characters as a comment (for decoration purposes).
Ideom is a very verbose language and in almost all cases self explanatory. A comment in Ideom is indeed a rare thing.
The backslash character ('\') is used for a comment which extends to the end of the line.
The square brackets ('[' and ']') enclose an Ideom remark which is a comment embedded within a line as well as multi-line comments.
An Ideom decorator line is something different.
For example:
Code:
****************************************************************
* the-ideom by Mike Gonta, 2019                                *
****************************************************************    
The asterisk character can be replaced with any non alphabetical character as long as it is the first character in the line after any white space (noise) if any.
The line itself is not a comment and of course the characters can be inter-mixed.
The text after the decorator line (which can consist of a single character) is treated as a comment and ignored although technically it is not a comment.

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com


Last edited by Mike Gonta on 13 Sep 2019, 16:35; edited 2 times in total
Post 02 Sep 2019, 17:09
View user's profile Send private message Reply with quote
Melissa



Joined: 12 Apr 2012
Posts: 70
You discovered COBOL again Wink
Post 02 Sep 2019, 22:15
View user's profile Send private message Reply with quote
Mike Gonta



Joined: 26 Dec 2010
Posts: 231
Melissa wrote:
You discovered COBOL again Wink
We should be so lucky.

_________________
Mike Gonta
look and see - many look but few see

http://mikegonta.com
Post 06 Sep 2019, 09:13
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2019, Tomasz Grysztar.

Powered by rwasa.