Survey #3: Exactly what is a language? 
Author Message
 Survey #3: Exactly what is a language?

1. Which of these do you think should be part of a programming language
itself?

Syntax (the actual characters and punctuation used)
Semantics (how it handles the syntax, especially when it can be interpreted
multiple ways)
Data Types (both availability and explicit definitions)
I/O (as in built-in file access (basic, fortran) instead of using libraries
(C, Java) )
Base Libraries (headers or frameworks for basic and generic functionality)
GUI Libraries (MFC, WinForms, Swing, etc.)
Extended Libraries (as in the entire framework for Java and C#)
Runtimes (mfc, vbrun, CLR)
Integrated Development Environments (VB, Delphi)

2. From the above list, which ones especially shouldn't be tied to a
language?

3. Are any languages that are particularly good examples of what fits your
definition and why?

4. Are any languages that are particularly good examples of what doesn't fit
your definition and why?

5. Since all surveys should have 5 questions but I can only think of 4, feel
free to write anything you want in this space.

Note: Please keep in mind that the first two questions are theoretical only.
Please keep language specific comments to the last 3 questions.

--
Jonathan Allen



Sun, 18 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
See inline.



Quote:
> 1. Which of these do you think should be part of a programming language
> itself?

Syntax, only syntax.

Quote:
> 2. From the above list, which ones especially shouldn't be tied to a
> language?

Libraries. I mean, any kind of functionality in general.

Quote:

> 3. Are any languages that are particularly good examples of what fits your
> definition and why?

So far, Visual Basic.
Because most functionalities you use are provided by COM/automation objects
written with whatever language.
But Visual Basic has some built-in functionality not provided by
COM/automation objects.

Quote:
> 4. Are any languages that are particularly good examples of what doesn't
fit
> your definition and why?

All languages with "standard libraries". Therefore C and C++ (also I love
them).

5. Since all surveys should have 5 questions but I can only think of 4, feel
free to write anything you want in this space.

I LOVE the idea of separating the language (syntax) from the packaging
(COM+).

Regards,
Frederic Claux



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?


Quote:
> 1. Which of these do you think should be part of a programming language
> itself?

> Syntax (the actual characters and punctuation used)

Yes

Quote:
> Semantics (how it handles the syntax, especially when it can be
interpreted
> multiple ways)

No

Quote:
> Data Types (both availability and explicit definitions)

No

Quote:
> I/O (as in built-in file access (basic, Fortran) instead of using
libraries
> (C, Java) )

No - This should be OS API's with a wrapper

Quote:
> Base Libraries (headers or frameworks for basic and generic functionality)

No

Quote:
> GUI Libraries (MFC, WinForms, Swing, etc.)

No

Quote:
> Extended Libraries (as in the entire framework for Java and C#)

No

Quote:
> Runtimes (mfc, vbrun, CLR)

No

Quote:
> Integrated Development Environments (VB, Delphi)

No

Quote:

> 2. From the above list, which ones especially shouldn't be tied to a
> language?

All except syntax.  A truly logical syntax is completely unambiguous and
thus a semantical analysis isn't needed.  Computers only have 1 data
type...integers.  Everything else is a feature of the hosted environment.

Quote:

> 3. Are any languages that are particularly good examples of what fits your
> definition and why?

Machine Language.  Others are really just libraries of ML code snippets
cobbled together by compilers.

Quote:

> 4. Are any languages that are particularly good examples of what doesn't
fit
> your definition and why?

Java is the ultimate example of what is NOT a language in the truest sense.
There's a difference between telling the computer what to do and telling the
computer how to do it.  Java is just an over-simplified version of telling
the computer what to do and delegating the task of how to do it to a lower
level language to be compiled or interpreted yet again.  Dot Net really has
narrowed the gap between real languagues and Java, however.

Quote:

> 5. Since all surveys should have 5 questions but I can only think of 4,
feel
> free to write anything you want in this space.

The real question is, do we really want to program in a COMPUTER language,
or do we want to program in a TASK language...ie, do we want to burden
ourselves with filling registers and popping system stacks, or do we want to
write code that performs more abstract tasks?

Think about this... What if all development was still taking place in x86
assembler?  Imagine how fast your favorite software would be with today's
hardware, but also imagine how long it would take to produce it.  There is a
trade-off between working with a language and working with an environment,
and reality is that Java, Dot Net, VB(1-6), et all are just ENVIRONMENTS
that eventually wind up in the one language that the operating computer
understands.

Quote:

> Note: Please keep in mind that the first two questions are theoretical
only.
> Please keep language specific comments to the last 3 questions.

> --
> Jonathan Allen



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?


Quote:



> > 1. Which of these do you think should be part of a programming language
> > itself?

> > Syntax (the actual characters and punctuation used)

> Yes

> > Semantics (how it handles the syntax, especially when it can be
> interpreted
> > multiple ways)

> No

Hi,

I don't understand this. You are saying that a "pure" language tells you
what a grammatically correct construct looks like, but not what it means?
How is that a definition of a language?

Here's my new language called "Wittgenstein":

// -----

Program :
    <Blob>
    <Program> <Blob>

Blob :
    <Thing>
    <Stuff>

Thing :
    [An Identifier (usual rules apply)]
    [A number (usual rules apply)]

Stuff :
    <Thing> ( <Blob> )
    { <Program> }

// -----

And here's the first program written in Wittgenstein:

    Fibble (42) Grok
    123 Zool
    { Grapefruit ( { black cat 456 } ) }

What does it do?

Peter

--
Peter Torr, JScript.NET Program Manager
http://msdn.microsoft.com/scripting/
Please post all questions to the newsgroups - thanks!



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
I'm not sure if I understand why you feel that syntax should be part of a
programmer language but semantics shouldn't.

Syntax specifies the valid order of tokens. For example:

a = b + c;

is valid; while:

a + b = c;

is invalid (at least in C/C++).

Semantics specifies what this specific order of tokens means: for example in
this case it could (if a, b, and c were integral types) mean "add a and b
and then assign the result to c".

So I would state that it is impossible to have a programming that is defined
only in terms of syntax.

What is nice about C# as opposed to C++ is that C# was designed to be
unambiguous - while C++ unfortunately inherited several syntactic/semantic
ambiguities from C and then added some more of its own.

This makes parsing C++ much hard than C# - and makes C# a "cleaner"
language.

    Jonathan Caves


Quote:



> > 1. Which of these do you think should be part of a programming language
> > itself?

> > Syntax (the actual characters and punctuation used)

> Yes

> > Semantics (how it handles the syntax, especially when it can be
> interpreted
> > multiple ways)

> No

> > Data Types (both availability and explicit definitions)

> No

> > I/O (as in built-in file access (basic, Fortran) instead of using
> libraries
> > (C, Java) )

> No - This should be OS API's with a wrapper

> > Base Libraries (headers or frameworks for basic and generic
functionality)

> No

> > GUI Libraries (MFC, WinForms, Swing, etc.)

> No

> > Extended Libraries (as in the entire framework for Java and C#)

> No

> > Runtimes (mfc, vbrun, CLR)

> No

> > Integrated Development Environments (VB, Delphi)

> No

> > 2. From the above list, which ones especially shouldn't be tied to a
> > language?

> All except syntax.  A truly logical syntax is completely unambiguous and
> thus a semantical analysis isn't needed.  Computers only have 1 data
> type...integers.  Everything else is a feature of the hosted environment.

> > 3. Are any languages that are particularly good examples of what fits
your
> > definition and why?

> Machine Language.  Others are really just libraries of ML code snippets
> cobbled together by compilers.

> > 4. Are any languages that are particularly good examples of what doesn't
> fit
> > your definition and why?

> Java is the ultimate example of what is NOT a language in the truest
sense.
> There's a difference between telling the computer what to do and telling
the
> computer how to do it.  Java is just an over-simplified version of telling
> the computer what to do and delegating the task of how to do it to a lower
> level language to be compiled or interpreted yet again.  Dot Net really
has
> narrowed the gap between real languagues and Java, however.

> > 5. Since all surveys should have 5 questions but I can only think of 4,
> feel
> > free to write anything you want in this space.

> The real question is, do we really want to program in a COMPUTER language,
> or do we want to program in a TASK language...ie, do we want to burden
> ourselves with filling registers and popping system stacks, or do we want
to
> write code that performs more abstract tasks?

> Think about this... What if all development was still taking place in x86
> assembler?  Imagine how fast your favorite software would be with today's
> hardware, but also imagine how long it would take to produce it.  There is
a
> trade-off between working with a language and working with an environment,
> and reality is that Java, Dot Net, VB(1-6), et all are just ENVIRONMENTS
> that eventually wind up in the one language that the operating computer
> understands.

> > Note: Please keep in mind that the first two questions are theoretical
> only.
> > Please keep language specific comments to the last 3 questions.

> > --
> > Jonathan Allen



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
I think you misunderstood me.  Semantics become irrelevant in an unambiguous
language.

If the syntax says that keyword foo is followed by a single int parameter,
then no semantical analysis needs to take place for what if keyword foo is
followed by keyword fu because this combination is syntactically incorrect.

The WHOLE point of my message was that the only real LANGUAGE on a computer
is it's native ML and that anything else is just an environment to simplify
that language in terms that humans can use to tell the computer WHAT to do
without telling it HOW to do it.



Quote:




> > > 1. Which of these do you think should be part of a programming
language
> > > itself?

> > > Syntax (the actual characters and punctuation used)

> > Yes

> > > Semantics (how it handles the syntax, especially when it can be
> > interpreted
> > > multiple ways)

> > No

> Hi,

> I don't understand this. You are saying that a "pure" language tells you
> what a grammatically correct construct looks like, but not what it means?
> How is that a definition of a language?

> Here's my new language called "Wittgenstein":

> // -----

> Program :
>     <Blob>
>     <Program> <Blob>

> Blob :
>     <Thing>
>     <Stuff>

> Thing :
>     [An Identifier (usual rules apply)]
>     [A number (usual rules apply)]

> Stuff :
>     <Thing> ( <Blob> )
>     { <Program> }

> // -----

> And here's the first program written in Wittgenstein:

>     Fibble (42) Grok
>     123 Zool
>     { Grapefruit ( { black cat 456 } ) }

> What does it do?

> Peter

> --
> Peter Torr, JScript.NET Program Manager
> http://msdn.microsoft.com/scripting/
> Please post all questions to the newsgroups - thanks!



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
ROFLMAO AT Peter

God one peter keep up the good work

Raymond L. King
Custom Software Designers
Beta ID 202509
Dev ID 0007967094
MVP



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?

Quote:

>I LOVE the idea of separating the language (syntax) from the packaging
>(COM+).

This raises a question in my mind that I've never seen anyone address.  Is it
really such a good idea to have MORE languages being used to produce .NET
components?  Doesn't that mean more training, more need for programmers to be
fluent in multiple syntaces (correct plural of syntax?) ?

Also, Bertrand Meyer claims that Eiffel will run under .NET in its entirety,
including multiple inheritance.  If true, one would have to say that this
provides more than just a syntactical difference, verdad?

Mike



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?

Quote:
> I think you misunderstood me.  Semantics become irrelevant in an
unambiguous
> language.

No, they don't. You still need to say what the grammtically correct
sentences mean. It might be *obvious* to certain people what a construct
(like "x = a + b") does, but that's because you have some background. You
still need to specify what happens.

Take these two examples, which look the same but do opposite things:

// C++
int x;
x = 0;
if (x = 1)
    printf("Always prints");

' VB
Dim x As Integer
x = 0
If x = 1 Then
    MsgBox "Never prints"
End If

Quote:
> If the syntax says that keyword foo is followed by a single int parameter,
> then no semantical analysis needs to take place for what if keyword foo is
> followed by keyword fu because this combination is syntactically

incorrect.

That is still syntax; you are saying what combination of things is allowed.
Once you have said "foo can only be followed by an integer literal" you
still have to say what foo actually does.

Quote:
> The WHOLE point of my message was that the only real LANGUAGE on a
computer
> is it's native ML and that anything else is just an environment to
simplify
> that language in terms that humans can use to tell the computer WHAT to do
> without telling it HOW to do it.

By that argument, the only "real" language is defined by quantum mechanics
(or whatever the latest thing is), which I know nothing about ;-). Or
perhaps some form of God[s], if you are a religious person.

Peter

--
Peter Torr, JScript.NET Program Manager
http://msdn.microsoft.com/scripting/
Please post all questions to the newsgroups - thanks!



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
I wasn't sure about what semantics were.
After reading to the previous posts, I would now say :

Language = syntax and semantics

Datatypes : yes and no.
No because the idea that everything can be represented by an object is so
beautiful...
Yes because the .NET platform doesn't allow to redefine operators as C++
does. Therefore datatypes must - I would say unfortunately - be part of the
language. Only the language knows how to add (+) two integer values. But the
addition in this case is nothing but a method of 'int'. E.g. :  int
int::operator +(int); and you can perform an addition by typing

int a;
a.operator+(1);

Unfortunalety operators have indirect impact on the syntax and semantics,
don't they ?

All other categories : No

Frederic Claux

PS1: isn't the word 'operators' missing to your list or part of the
'language' ? Where should this word be placed ? Any comments ?
PS2: knowledge of C++ greatly appreciated here, isn't it ? :)
PS3: very interesting discussion.



Quote:
> I'm not sure if I understand why you feel that syntax should be part of a
> programmer language but semantics shouldn't.

> Syntax specifies the valid order of tokens. For example:

> a = b + c;

> is valid; while:

> a + b = c;

> is invalid (at least in C/C++).

> Semantics specifies what this specific order of tokens means: for example
in
> this case it could (if a, b, and c were integral types) mean "add a and b
> and then assign the result to c".

> So I would state that it is impossible to have a programming that is
defined
> only in terms of syntax.

> What is nice about C# as opposed to C++ is that C# was designed to be
> unambiguous - while C++ unfortunately inherited several syntactic/semantic
> ambiguities from C and then added some more of its own.

> This makes parsing C++ much hard than C# - and makes C# a "cleaner"
> language.

>     Jonathan Caves





> > > 1. Which of these do you think should be part of a programming
language
> > > itself?

> > > Syntax (the actual characters and punctuation used)

> > Yes

> > > Semantics (how it handles the syntax, especially when it can be
> > interpreted
> > > multiple ways)

> > No

> > > Data Types (both availability and explicit definitions)

> > No

> > > I/O (as in built-in file access (basic, Fortran) instead of using
> > libraries
> > > (C, Java) )

> > No - This should be OS API's with a wrapper

> > > Base Libraries (headers or frameworks for basic and generic
> functionality)

> > No

> > > GUI Libraries (MFC, WinForms, Swing, etc.)

> > No

> > > Extended Libraries (as in the entire framework for Java and C#)

> > No

> > > Runtimes (mfc, vbrun, CLR)

> > No

> > > Integrated Development Environments (VB, Delphi)

> > No

> > > 2. From the above list, which ones especially shouldn't be tied to a
> > > language?

> > All except syntax.  A truly logical syntax is completely unambiguous and
> > thus a semantical analysis isn't needed.  Computers only have 1 data
> > type...integers.  Everything else is a feature of the hosted
environment.

> > > 3. Are any languages that are particularly good examples of what fits
> your
> > > definition and why?

> > Machine Language.  Others are really just libraries of ML code snippets
> > cobbled together by compilers.

> > > 4. Are any languages that are particularly good examples of what
doesn't
> > fit
> > > your definition and why?

> > Java is the ultimate example of what is NOT a language in the truest
> sense.
> > There's a difference between telling the computer what to do and telling
> the
> > computer how to do it.  Java is just an over-simplified version of
telling
> > the computer what to do and delegating the task of how to do it to a
lower
> > level language to be compiled or interpreted yet again.  Dot Net really
> has
> > narrowed the gap between real languagues and Java, however.

> > > 5. Since all surveys should have 5 questions but I can only think of
4,
> > feel
> > > free to write anything you want in this space.

> > The real question is, do we really want to program in a COMPUTER
language,
> > or do we want to program in a TASK language...ie, do we want to burden
> > ourselves with filling registers and popping system stacks, or do we
want
> to
> > write code that performs more abstract tasks?

> > Think about this... What if all development was still taking place in
x86
> > assembler?  Imagine how fast your favorite software would be with
today's
> > hardware, but also imagine how long it would take to produce it.  There
is
> a
> > trade-off between working with a language and working with an
environment,
> > and reality is that Java, Dot Net, VB(1-6), et all are just ENVIRONMENTS
> > that eventually wind up in the one language that the operating computer
> > understands.

> > > Note: Please keep in mind that the first two questions are theoretical
> > only.
> > > Please keep language specific comments to the last 3 questions.

> > > --
> > > Jonathan Allen



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?


Quote:
> ROFLMAO AT Peter

> God one peter keep up the good work

Thanks ;-), although what was I thinking? The first Wittgenstein program
should have been:

    I have a beetle in my box

<g>

Peter

--
Peter Torr, JScript.NET Program Manager
http://msdn.microsoft.com/scripting/
Please post all questions to the newsgroups - thanks!



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?
In the opposite, this allows developers to program with the language they
want.
This is the idea behind COM since early 90's. This made COM a wonderful
technology and make .NET an even more wonderful technology I believe. The
way components interact is far more interesting than the way language are
synctatically made of.
Behind the word Java for instance, you have both the packaging _and_ the
language. That's quite not very opened.

Regards,
Frederic Claux



Quote:

> >I LOVE the idea of separating the language (syntax) from the packaging
> >(COM+).

> This raises a question in my mind that I've never seen anyone address.  Is
it
> really such a good idea to have MORE languages being used to produce .NET
> components?  Doesn't that mean more training, more need for programmers to
be
> fluent in multiple syntaces (correct plural of syntax?) ?

> Also, Bertrand Meyer claims that Eiffel will run under .NET in its
entirety,
> including multiple inheritance.  If true, one would have to say that this
> provides more than just a syntactical difference, verdad?

> Mike



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?



Quote:


> > I think you misunderstood me.  Semantics become irrelevant in an
> unambiguous
> > language.

> No, they don't. You still need to say what the grammtically correct
> sentences mean. It might be *obvious* to certain people what a construct
> (like "x = a + b") does, but that's because you have some background. You
> still need to specify what happens.

> Take these two examples, which look the same but do opposite things:

> // C++
> int x;
> x = 0;
> if (x = 1)
>     printf("Always prints");

> ' VB
> Dim x As Integer
> x = 0
> If x = 1 Then
>     MsgBox "Never prints"
> End If

I think you just reinforced my argument about ambiguous languages with the
"if (x=1)".

Quote:

> > If the syntax says that keyword foo is followed by a single int
parameter,
> > then no semantical analysis needs to take place for what if keyword foo
is
> > followed by keyword fu because this combination is syntactically
> incorrect.

> That is still syntax; you are saying what combination of things is
allowed.
> Once you have said "foo can only be followed by an integer literal" you
> still have to say what foo actually does.

Hmm, so you are saying that the semantic analysis is necessary to figure out
what to do with the syntax, even in an unambiguous language?

Quote:

> > The WHOLE point of my message was that the only real LANGUAGE on a
> computer
> > is it's native ML and that anything else is just an environment to
> simplify
> > that language in terms that humans can use to tell the computer WHAT to
do
> > without telling it HOW to do it.

> By that argument, the only "real" language is defined by quantum mechanics
> (or whatever the latest thing is), which I know nothing about ;-). Or
> perhaps some form of God[s], if you are a religious person.

Nah, Machine Language is definately a real language (except on a Crusoe
chip) because the hardware knows what to do with each and every command
unambiguously, although an argument could be made about the micro-code of
some processors being a language.

- Show quoted text -

Quote:

> Peter

> --
> Peter Torr, JScript.NET Program Manager
> http://msdn.microsoft.com/scripting/
> Please post all questions to the newsgroups - thanks!



Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?

Quote:
> a = b + c;
> is valid; while:

> a + b = c;
> is invalid (at least in C/C++).

Well, that all depends on what a, b and c are and what #defines you have, of
course... check out http://www.ioccc.org


Mon, 19 May 2003 03:00:00 GMT  
 Survey #3: Exactly what is a language?


Quote:
> Here's my new language called "Wittgenstein":

> // -----

> Program :
>     <Blob>
>     <Program> <Blob>

> Blob :
>     <Thing>
>     <Stuff>

> Thing :
>     [An Identifier (usual rules apply)]
>     [A number (usual rules apply)]

> Stuff :
>     <Thing> ( <Blob> )
>     { <Program> }

> // -----

> And here's the first program written in Wittgenstein:

>     Fibble (42) Grok
>     123 Zool

Will Wittgenstein.NET be available on beta2? ;-)


Mon, 19 May 2003 03:00:00 GMT  
 
 [ 25 post ]  Go to page: [1] [2]

 Relevant Pages 

1. Survey #3: Exactly what is a language?

2. Survey #2: Which language...

3. SURVEY of CS depts. (languages)

4. Language Implementation Survey

5. Language Implementation Survey (and results)

6. Language implementation survey

7. survey of set based languages

8. Survey on language of postings

9. Survey on language of postings in comp.lang.c

10. Programming Languages Survey

11. Survey #2: Which language...

12. I am new to programming and am lost

 

 
Powered by phpBB® Forum Software