Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > alt.os.development > #8861
| From | "Rod Pemberton" <boo@fasdfrewar.cdm> |
|---|---|
| Newsgroups | alt.os.development |
| Subject | Re: C parser ramblings, language design, etc |
| Date | 2015-09-30 20:32 -0400 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <op.x5sw4jnryfako5@localhost> (permalink) |
| References | (2 earlier) <op.x4wcoua0yfako5@localhost> <mt4dje$5l3$1@dont-email.me> <op.x4xfpfabyfako5@localhost> <mt7e3r$u0k$1@dont-email.me> <op.x499nwp5yfako5@localhost> |
On Sun, 20 Sep 2015 18:48:58 -0400, Rod Pemberton <boo@fasdfrewar.cdm> wrote:
> On Mon, 14 Sep 2015 17:29:16 -0400, James Harris <james.harris.1@gmail.com> wrote:
>> else if symbol is RIGHT_BRACE
>> parser is confused not knowing which LEFT_BRACE it pairs with
>
> You don't need to know which brace goes with which brace as
> long as all braces are properly paired. An up/down counter
> can keep track of scope level and provide a count of missing
> braces.
I should clarify on that.
I thought there were five or so proven ways to generate
branches and target branch labels from braces.
In addition to walking or backtracking the AST, I thought
the following were proven solutions:
a) symbol lookup table
b) integer LIFO (push/pop) stack
c) an up/down counter for the scope level
and some block counters for each scope level,
either 15 (C89) or 127 (C99)
d) an up/down counter with a resettable up counter
My results are:
a) fails.
I think this is for the same reason as 'd)' fails,
which is information loss, but it just might be
the way I attempted to solve it ...
b) works.
c) works.
d) fails.
If 'd)' works, for the life of me, I can't seem to
get it to do so right now ...
I was attempting another method that used peak
detection of counters on the braces, but it's
flawed for more than a level or two of nesting.
So, that's another fail.
AIUI, all loops and conditionals in C can be
rewritten into this form:
/* pre-loop actions */
cond= ... ; /* entry value */
while(cond)
{
...
/* end-of-loop actions */
cond= ... ; /* repeat or exit condition */
}
Obviously, multiple block if-then statements must be
broken down into single blocks and for() and do-while()
must be rewritten into while() to use this. E.g., cond=1
for a do-while() upon entry and then cond would be set
appropriately at the end of the block. for() would be
unrolled. if() would be broken into single blocks, with
cond=0 at the end of block, etc.
So, for each braced block,
{
...
}
I wan't to produce a generic conditional code block
from the braces, such as:
bxxxx:
jz fxxxx
...
jmp bxxx:
fxxxx:
where 'xxxx' is a unique integer for that block,
where 'f' represents a forward branch, and 'b'
represents a backward branch, and 'fxxxx' and
'bxxxx' are the actual labels used once 'xxxx' is
filled in, i.e., b0000 f0000 ... b0009 f0009 ... etc.
So, there at least three succesful methods.
Here are two down-n-dirty (no C niceties) C programs
demonstrating using a integer LIFO stack 'b)' and
up/down counter with level counters 'c)'.
/* integer LIFO stack */
#include <stdio.h>
#define SIZE 1024
unsigned long stack[1024],sp;
unsigned long up_ctr=0,branch=0,idx=0;
#define TABSZ 2
void indent(int idx)
{
printf("%*c",idx*TABSZ,' ');
}
void filter(char *c)
{
/* filter out quotes, comments, character constants here */
}
void push(unsigned long r)
{
/* add stack overflow check here */
stack[sp]=r;
sp++;
}
void pop(unsigned long *r)
{
/* add stack underflow check here */
sp--;
*r=stack[sp];
}
void brclvl(char c)
{
switch(c)
{
case '{':
branch=up_ctr;
idx++;
indent(idx);
printf("b%08lx:\n",branch);
indent(idx);
printf("jz f%08lx\n",branch);
push(branch);
up_ctr++;
break;
case '}':
pop(&branch);
indent(idx);
printf("jmp b%08lx\n",branch);
indent(idx);
printf("f%08lx:\n",branch);
idx--;
break;
}
}
int main(void)
{
char c;
while(1)
{
c=getchar();
filter(&c);
brclvl(c);
if(feof(stdin))
break;
}
return(0);
}
/* end */
/* up/down counter w/level counters */
#include <stdio.h>
/* C89 15 nesting levels */
/* C99 127 nesting levels */
#if 1
#define MAX 15
#endif
#if 0
#define MAX 127
#endif
unsigned long idx=0;
unsigned short nst[MAX];
unsigned short up_ctr=0,branch=0;
#define TABSZ 2
void indent(int idx)
{
printf("%*c",idx*TABSZ,' ');
}
void filter(char *c)
{
/* filter out quotes, comments, character constants here */
}
void brclvl(char c)
{
switch(c)
{
case '{':
branch=nst[up_ctr];
idx++;
indent(idx);
printf("b%04hx%04hx:\n",up_ctr,branch);
indent(idx);
printf("jz f%04hx%04hx\n",up_ctr,branch);
up_ctr++;
break;
case '}':
up_ctr--;
branch=nst[up_ctr];
nst[up_ctr]++;
indent(idx);
printf("jmp b%04hx%04hx\n",up_ctr,branch);
indent(idx);
printf("f%04hx%04hx:\n",up_ctr,branch);
idx--;
break;
}
}
int main(void)
{
char c;
/* memset */
for(idx=0;idx<MAX;idx++)
nst[idx]=0;
while(1)
{
c=getchar();
filter(&c);
brclvl(c);
if(feof(stdin))
break;
}
return(0);
}
/* end */
Hopefully, those will provide an idea of how I'd prefer to
solve emitting assembly branches for C braces without needing
to walk or backtrack the AST.
Rod Pemberton
--
Just how many texting and calendar apps does humanity need?
Just how many food articles from neurotic millenials do we need?
Back to alt.os.development | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-11 19:11 -0400
Re: C parser ramblings, language design, etc "Alexei A. Frounze" <alexfrunews@gmail.com> - 2015-09-12 05:10 -0700
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-13 04:41 -0400
Re: C parser ramblings, language design, etc "Alexei A. Frounze" <alexfrunews@gmail.com> - 2015-09-13 02:37 -0700
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-13 07:20 -0400
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-13 18:37 +0100
Re: C parser ramblings, language design, etc "Alexei A. Frounze" <alexfrunews@gmail.com> - 2015-09-13 21:03 -0700
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-12 13:49 +0100
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-13 06:27 -0400
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-13 19:02 +0100
Re: C parser ramblings, language design, etc "Alexei A. Frounze" <alexfrunews@gmail.com> - 2015-09-13 15:10 -0700
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-13 20:30 -0400
Re: C parser ramblings, language design, etc "Alexei A. Frounze" <alexfrunews@gmail.com> - 2015-09-13 20:07 -0700
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-14 22:29 +0100
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-20 18:48 -0400
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-22 20:04 +0100
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-30 20:32 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2015-12-27 13:51 +0000
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-12-27 17:35 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-16 17:09 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-16 14:30 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-16 21:40 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-18 07:34 -0500
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-18 08:37 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-18 23:35 +0000
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-19 12:52 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-19 13:09 +0000
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-19 21:46 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-21 11:15 +0000
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-21 21:48 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-22 15:16 +0000
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-22 23:02 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-01-23 17:04 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-27 15:27 +0000
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-02-29 09:26 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-02-29 19:02 +0000
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-03-02 20:48 +0000
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-03-09 22:29 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-03-17 16:41 +0000
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-03-29 09:00 +0200
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-03-09 22:29 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-03-17 17:36 +0000
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-03-29 09:01 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-02 10:13 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-04-10 19:33 +0200
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-04-15 16:27 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-26 08:10 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-03 20:14 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-04 09:17 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-21 21:10 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-29 08:44 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-29 12:05 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-29 12:28 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-06-01 19:22 +0200
OT: Obama in the UK (was: C parser ramblings, language design, etc) James Harris <james.harris.1@gmail.com> - 2016-04-26 08:46 +0100
Re: OT: Obama in the UK (was: C parser ramblings, language design, etc) Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-26 23:58 -0400
Re: OT: Obama in the UK (was: C parser ramblings, language design, etc) Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 00:08 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-04-27 06:40 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 05:25 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-04-27 17:45 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 18:25 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-02 23:44 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-03 16:56 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-04 09:23 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-04 17:22 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-06 11:47 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-06 19:34 -0400
Re: OT: Obama in the UK "James Harris" <james.harris.1@gmail.com> - 2016-05-07 12:51 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-07 19:20 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-08 01:46 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-07 21:43 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-08 09:36 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-08 15:34 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-10 11:25 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-10 17:32 -0400
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-10 18:25 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-15 00:06 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-07 21:32 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-06-02 07:41 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-06-02 16:21 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-20 14:59 +0100
Re: OT: Obama in the UK "wolfgang kern" <nowhere@never.at> - 2016-05-20 21:13 +0200
Re: OT: Obama in the UK "wolfgang kern" <nowhere@never.at> - 2016-05-20 21:17 +0200
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-21 08:04 +0100
Re: OT: Obama in the UK Bernhard Schornak <schornak@web.de> - 2016-05-21 21:10 +0200
Re: OT: Obama in the UK "wolfgang kern" <nowhere@never.at> - 2016-05-21 11:16 +0200
Re: OT: Obama in the UK Bernhard Schornak <schornak@web.de> - 2016-05-21 21:11 +0200
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-05-20 22:51 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-21 07:29 +0100
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-06-02 08:33 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-06-02 16:21 -0400
UK pronunciation was, [Re: OT: Obama in the UK, was C lang parser ramblings] Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-06-11 14:34 -0400
Re: UK pronunciation was, [Re: OT: Obama in the UK, was C lang parser ramblings] James Harris <james.harris.1@gmail.com> - 2016-07-24 18:28 +0100
Re: UK pronunciation was, [Re: OT: Obama in the UK, was C lang parser ramblings] Rod Pemberton <NoHaveNotOne@bcczxcfrze.cam> - 2016-07-25 21:54 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-07-24 18:21 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfrze.cam> - 2016-07-25 21:54 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-07-26 10:02 +0100
Re: OT: Obama in the UK Rod Pemberton <NoHaveNotOne@bcczxcfrze.cam> - 2016-07-26 07:56 -0400
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-07-30 12:26 +0100
Re: OT: Obama in the UK Bernhard Schornak <schornak@web.de> - 2016-05-03 20:14 +0200
Re: OT: Obama in the UK James Harris <james.harris.1@gmail.com> - 2016-05-04 09:25 +0100
Re: OT: Obama in the UK Bernhard Schornak <schornak@web.de> - 2016-05-21 21:11 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-26 07:59 +0100
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 00:01 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-27 09:28 +0100
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 05:42 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-27 17:16 +0100
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-27 18:05 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-27 09:29 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-04-27 09:42 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-03 20:14 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-07 14:34 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-21 21:10 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-29 11:27 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-06-01 19:22 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-07 16:34 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-05-21 21:10 +0200
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-05-29 12:10 +0100
Re: C parser ramblings, language design, etc Bernhard Schornak <schornak@web.de> - 2016-06-01 19:22 +0200
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-25 18:29 -0500
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-26 11:47 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-27 17:08 +0000
Re: C parser ramblings, language design, etc "wolfgang kern" <nowhere@never.at> - 2016-01-28 11:54 +0100
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-28 11:47 +0000
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-21 10:13 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-25 18:29 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-27 17:15 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-27 17:31 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-28 11:07 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-19 22:28 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-22 15:04 +0000
Re: C parser ramblings, language design, etc Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-01-25 17:48 -0500
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2016-01-27 17:16 +0000
Re: cows and bulls game, was [Re: C parser ramblings, language design, etc] "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-12-27 21:19 -0500
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-30 20:32 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2015-10-05 15:13 +0100
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-05 21:56 -0400
Re: C parser ramblings, language design, etc James Harris <james.harris.1@gmail.com> - 2015-12-27 13:56 +0000
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-10-21 19:46 -0400
Re: C parser ramblings, language design, etc "James Harris" <james.harris.1@gmail.com> - 2015-09-12 15:38 +0100
Re: C parser ramblings, language design, etc "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-09-13 07:10 -0400
Re: C parser ramblings, language design, etc "s_dubrovich@yahoo.com" <s_dubrovich@yahoo.com> - 2015-11-01 09:07 -0800
csiph-web