www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [nomenclature] systems language

reply Justin Johansson <no spam.com> writes:
Touted often around here is the term "systems language".

May we please discuss a definition to be agreed upon
for the usage this term (at least in this community) and
also have some agreed upon examples of PLs that might also
be members of the "set of systems languages".
Given a general subjective term like this, one would have
to suspect that the D PL is not the only member of this set.

Cheers
Justin Johansson

PS. my apologies for posting a lame joke recently;
certainly it was not meant to be disparaging towards
the D PL and hopefully it was not taken this way.
Oct 14 2010
next sibling parent so <so so.do> writes:
Jokes? sure!

System language is a language you can "actually" write "code" with it.

On Thu, 14 Oct 2010 15:30:02 +0300, Justin Johansson <no spam.com> wrote:

 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

-- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 14 2010
prev sibling next sibling parent reply Moritz Warning <moritzwarning web.de> writes:
On Thu, 14 Oct 2010 23:30:02 +1100, Justin Johansson wrote:

 Touted often around here is the term "systems language".
 
 May we please discuss a definition to be agreed upon for the usage this
 term (at least in this community) and also have some agreed upon
 examples of PLs that might also be members of the "set of systems
 languages". Given a general subjective term like this, one would have to
 suspect that the D PL is not the only member of this set.
 
 Cheers
 Justin Johansson
 
 PS. my apologies for posting a lame joke recently; certainly it was not
 meant to be disparaging towards the D PL and hopefully it was not taken
 this way.

From my pov, a systems programming language has pointers. That's all.
Oct 14 2010
parent Justin Johansson <no spam.com> writes:
On 14/10/2010 11:48 PM, Moritz Warning wrote:
 On Thu, 14 Oct 2010 23:30:02 +1100, Justin Johansson wrote:

 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon for the usage this
 term (at least in this community) and also have some agreed upon
 examples of PLs that might also be members of the "set of systems
 languages". Given a general subjective term like this, one would have to
 suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently; certainly it was not
 meant to be disparaging towards the D PL and hopefully it was not taken
 this way.

From my pov, a systems programming language has pointers. That's all.

And therefore candidate languages might include ... and exclude ...?
Oct 14 2010
prev sibling next sibling parent reply Norbert Nemec <Norbert Nemec-online.de> writes:
A language that is adequate for systems programming.

This leaves "adequate" and "systems programming" for definition...




On 10/14/2010 02:30 PM, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

Oct 14 2010
next sibling parent so <so so.do> writes:
That is too much to comprehend for some people. They think if a language  
is "able" to do something it doesn't matter how many million lines or  
knowledge to do that simple thing, and you can simply put "able to do  
certain stuff" in that languages feature list.

On Thu, 14 Oct 2010 16:08:06 +0300, Norbert Nemec  
<Norbert nemec-online.de> wrote:

 A language that is adequate for systems programming.

 This leaves "adequate" and "systems programming" for definition...




 On 10/14/2010 02:30 PM, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.


-- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 14 2010
prev sibling next sibling parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
I would consider a systems programming language any language that you
can use to build operating systems, even if a little help of assembly 
language is
required.


"Norbert Nemec" <Norbert Nemec-online.de> wrote in message 
news:i96vcl$11oi$1 digitalmars.com...
A language that is adequate for systems programming.

 This leaves "adequate" and "systems programming" for definition...




 On 10/14/2010 02:30 PM, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.


Oct 14 2010
parent reply Ezneh <petitv.isat gmail.com> writes:
Paulo Pinto Wrote:

 I would consider a systems programming language any language that you
 can use to build operating systems, even if a little help of assembly 
 language is
 required.
 

I would consider that too but ... Something goes wrong with this : http://www.jnode.org/ On OS in ASM and Java only (99% Java) ... But Java is not categorized as a systems programming language.
Oct 14 2010
parent Paulo Pinto <pjmlp progtools.org> writes:
Am 14.10.2010 18:08, schrieb Ezneh:
 Paulo Pinto Wrote:

 I would consider a systems programming language any language that you
 can use to build operating systems, even if a little help of assembly
 language is
 required.

I would consider that too but ... Something goes wrong with this : http://www.jnode.org/ On OS in ASM and Java only (99% Java) ... But Java is not categorized as a systems programming language.

http://killerstuff.net/publications/device_drivers_in_java_paper_from_qnx.pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92.1892&rep=rep1&type=pdf Someone else said that any language with pointers is a systems programming language. So that makes C# a systems programming language or for that matter Pascal. For me, if you can write the majority of an OS in a specific language, then you can use it for systems programming. -- Paulo
Oct 14 2010
prev sibling parent Jimmy Cao <jcao219 gmail.com> writes:
--90e6ba5bbb57761d1b04929b6390
Content-Type: text/plain; charset=ISO-8859-1

I think that would be too broad.
You can write an operating system in Python if you wanted to.
http://unununium.org/

On Thu, Oct 14, 2010 at 10:57 AM, Paulo Pinto <pjmlp progtools.org> wrote:

 I would consider a systems programming language any language that you
 can use to build operating systems, even if a little help of assembly
 language is
 required.


 "Norbert Nemec" <Norbert Nemec-online.de> wrote in message
 news:i96vcl$11oi$1 digitalmars.com...
A language that is adequate for systems programming.

 This leaves "adequate" and "systems programming" for definition...




 On 10/14/2010 02:30 PM, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.



--90e6ba5bbb57761d1b04929b6390 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I think that would be too broad.<div>You can write an operating system in P= ython if you wanted to.</div><div><a href=3D"http://unununium.org/">http://= unununium.org/</a><br><div><br><div class=3D"gmail_quote">On Thu, Oct 14, 2= 010 at 10:57 AM, Paulo Pinto <span dir=3D"ltr">&lt;<a href=3D"mailto:pjmlp = progtools.org">pjmlp progtools.org</a>&gt;</span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex;">I would consider a systems programming lang= uage any language that you<br> can use to build operating systems, even if a little help of assembly<br> language is<br> required.<br> <br> <br> &quot;Norbert Nemec&quot; &lt;Norbert Nemec-online.de&gt; wrote in message<= br> news:i96vcl$11oi$1 digitalmars.com...<br> <div><div></div><div class=3D"h5">&gt;A language that is adequate for syste= ms programming.<br> &gt;<br> &gt; This leaves &quot;adequate&quot; and &quot;systems programming&quot; f= or definition...<br> &gt;<br> &gt;<br> &gt;<br> &gt;<br> &gt; On 10/14/2010 02:30 PM, Justin Johansson wrote:<br> &gt;&gt; Touted often around here is the term &quot;systems language&quot;.= <br> &gt;&gt;<br> &gt;&gt; May we please discuss a definition to be agreed upon<br> &gt;&gt; for the usage this term (at least in this community) and<br> &gt;&gt; also have some agreed upon examples of PLs that might also<br> &gt;&gt; be members of the &quot;set of systems languages&quot;.<br> &gt;&gt; Given a general subjective term like this, one would have<br> &gt;&gt; to suspect that the D PL is not the only member of this set.<br> &gt;&gt;<br> &gt;&gt; Cheers<br> &gt;&gt; Justin Johansson<br> &gt;&gt;<br> &gt;&gt; PS. my apologies for posting a lame joke recently;<br> &gt;&gt; certainly it was not meant to be disparaging towards<br> &gt;&gt; the D PL and hopefully it was not taken this way.<br> &gt;<br> <br> <br> </div></div></blockquote></div><br></div></div> --90e6ba5bbb57761d1b04929b6390--
Oct 14 2010
prev sibling next sibling parent reply Juanjo Alvarez <fake fakeemail.com> writes:
On Thu, 14 Oct 2010 23:30:02 +1100, Justin Johansson <no spam.com> 
wrote:
 Touted often around here is the term "systems language".
 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".

A system language allows you to:. + Use pointers + Do manual memory management + Embed assembler + Call the operating system syscalls
Oct 14 2010
parent "Paulo Pinto" <pjmlp progtools.org> writes:
You just ruled out C as a systems language.

In case you are not aware the C standard does not define inline assembler. 
So it
is possibile to have a fully conformat Ansi/ISO C compiler that does not 
offer
inline assembly.

Actually there are a few commercial C compilers that do not offer inline 
assembly.

So given your definition C is not a systems programming language.

--
Paulo

"Juanjo Alvarez" <fake fakeemail.com> wrote in message 
news:almarsoft.5384689916443906991 news.digitalmars.com...
 On Thu, 14 Oct 2010 23:30:02 +1100, Justin Johansson <no spam.com> wrote:
 Touted often around here is the term "systems language".
 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".

A system language allows you to:. + Use pointers + Do manual memory management + Embed assembler + Call the operating system syscalls

Oct 14 2010
prev sibling next sibling parent "Nick Sabalausky" <a a.a> writes:
"Justin Johansson" <no spam.com> wrote in message 
news:i96t5c$af5$1 digitalmars.com...
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

A language that doesn't suck at general direct hardware access (memory, i/o, etc).
Oct 14 2010
prev sibling next sibling parent sybrandy <sybrandy gmail.com> writes:
On 10/14/2010 08:30 AM, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

A systems language is a compiled language that allows you to get as close to the metal as possible without having to resort to assembly language. Also, it should be able to run in such a manner as to not interfere with applications unless absolutely necessary. Lastly, it should have a API/ABI (Not sure which is correct) that is easy for other languages to use for system calls. Casey
Oct 14 2010
prev sibling next sibling parent reply "Simen kjaeraas" <simen.kjaras gmail.com> writes:
Justin Johansson <no spam.com> wrote:

 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

My understanding of the term: - Compiles to native code - Gives direct access to low-level primitives (pointers, register-size integers, bitwise operations) - Allows pointer arithmetic - Does not stand in the way of getting low-level work done - Has a well defined ABI - Lets you do manual memory management Not sure which languages do fit this definition, except of course C, C++ and D. -- Simen
Oct 14 2010
parent reply =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= <jeberger free.fr> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

so wrote:
 I asked the similar question on "What do people here use as an IDE?",
 which i suppose the reason of this topic. And asked if anyone can name =

 language that can replace C (other than these two).
=20
 I got answers like Haskell, F#, C#, Scala, Ada, and there are many more=

 they say.
 It looks like people here agree that all languages are system languages=

=20

languages". A language may be "powerful" without being a systems language. Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Oct 16 2010
next sibling parent Justin Johansson <no spam.com> writes:
On 16/10/2010 9:02 PM, "Jérôme M. Berger" wrote:
 so wrote:
 I asked the similar question on "What do people here use as an IDE?",
 which i suppose the reason of this topic. And asked if anyone can name a
 language that can replace C (other than these two).

 I got answers like Haskell, F#, C#, Scala, Ada, and there are many more
 they say.
 It looks like people here agree that all languages are system languages.

languages". A language may be "powerful" without being a systems language. Jerome

Excellent counterpoint. Could not have said it better. Justin
Oct 16 2010
prev sibling parent =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= <jeberger free.fr> writes:
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

so wrote:
 I'll just help you, because i am so nice!
=20
 If you go read you will see i asked the question "Name one?" quoting "I=

 it wasn't for C++, there are plenty of other powerfull languages out
 there."
=20
 We are good so far? I hope yes!
 You see that little sentence which is almost the first half of quote?
 "If it wasn't for C++"? I hope you do...
=20
 Now someone with a little reading comprehension (i suppose i do have
 some) would interpret that line like "Powerfull languages that could
 replace C++".
=20
 So i did and asked if he could name one, it wasn't hard no?
 Come on, you can do better than this...
=20
 Sorry if i am being harsh.
=20

--=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Oct 16 2010
prev sibling next sibling parent "Simen kjaeraas" <simen.kjaras gmail.com> writes:
Simen kjaeraas <simen.kjaras gmail.com> wrote:
 My understanding of the term:

 - Compiles to native code

that is close in speed to that of handwritten assembly
 - Gives direct access to low-level primitives (pointers,
      register-size integers, bitwise operations)
 - Allows pointer arithmetic
 - Does not stand in the way of getting low-level work done
 - Has a well defined ABI
 - Lets you do manual memory management

 Not sure which languages do fit this definition, except of
 course C, C++ and D.

-- Simen
Oct 14 2010
prev sibling next sibling parent SK <sk metrokings.com> writes:
On Thu, Oct 14, 2010 at 5:30 AM, Justin Johansson <no spam.com> wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".

A fun question without a precise answer -- like the "i know it when I see it" definition of obscenity. IMO, a systems language has two key characteristics: 1) A systems language expresses software that does not overlay software written in another language. "Overlay" includes running over interpreters and/or kernels. 2) A systems language allows machine independent concepts to be expressed in the language. This means I can't call my flimsy language a systems language by falling back on assembly to fill conceptual gaps that recur on every platform. It also rules out assembly itself as a systems language. When a concept is machine dependent, e.g. "read the x86 time stamp counter register", then assembly is perfectly permissible. Some on this list have opined that D is not aiming at operating system software, so maybe D is an "aspiring" systems language for the time being. Regards, -steve
Oct 14 2010
prev sibling next sibling parent so <so so.do> writes:
I asked the similar question on "What do people here use as an IDE?",  
which i suppose the reason of this topic. And asked if anyone can name a  
language that can replace C (other than these two).

I got answers like Haskell, F#, C#, Scala, Ada, and there are many more  
they say.
It looks like people here agree that all languages are system languages.

Lets drop the "system" and use "all" instead, from now on :)

On Fri, 15 Oct 2010 04:59:41 +0300, Simen kjaeraas  
<simen.kjaras gmail.com> wrote:

 Not sure which languages do fit this definition, except of
 course C, C++ and D.

-- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 15 2010
prev sibling next sibling parent reply Steven Wawryk <stevenw acres.com.au> writes:
To me it means that it can be used for applications on platforms that 
provide no operating system support, for example tightly embedded 
applications or writing an operating system.  This implies that the 
language run-time (or at least the parts of it that need operating 
system support) is unavailable, so as much hardware interfacing and 
resource management as are needed by the application need to be written 
for the purpose.

C and C++ qualify.  I'm new to D and still learning about it, but with 
the deprecation of scoped classes and delete, I'm not sure that D qualifies.


On 14/10/10 23:00, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

Oct 15 2010
next sibling parent reply so <so so.do> writes:
C doesn't have scope mechanism (constructor/destructor) either, though it  
is a great tool.

On Fri, 15 Oct 2010 12:10:05 +0300, Steven Wawryk <stevenw acres.com.au>  
wrote:

 To me it means that it can be used for applications on platforms that  
 provide no operating system support, for example tightly embedded  
 applications or writing an operating system.  This implies that the  
 language run-time (or at least the parts of it that need operating  
 system support) is unavailable, so as much hardware interfacing and  
 resource management as are needed by the application need to be written  
 for the purpose.

 C and C++ qualify.  I'm new to D and still learning about it, but with  
 the deprecation of scoped classes and delete, I'm not sure that D  
 qualifies.


 On 14/10/10 23:00, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.


-- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 15 2010
parent Steven Wawryk <stevenw acres.com.au> writes:
C does allow allocation on the stack.  But of course you're right that 
it doesn't have constructors/destructors, nor classes and OO.  It's 
interesting that device drivers for linux use a (partial) manual 
implementation of polymorphism and require a lot of boilerplate.

so wrote:
 C doesn't have scope mechanism (constructor/destructor) either, though 
 it is a great tool.
 
 On Fri, 15 Oct 2010 12:10:05 +0300, Steven Wawryk <stevenw acres.com.au> 
 wrote:
 
 To me it means that it can be used for applications on platforms that 
 provide no operating system support, for example tightly embedded 
 applications or writing an operating system.  This implies that the 
 language run-time (or at least the parts of it that need operating 
 system support) is unavailable, so as much hardware interfacing and 
 resource management as are needed by the application need to be 
 written for the purpose.

 C and C++ qualify.  I'm new to D and still learning about it, but with 
 the deprecation of scoped classes and delete, I'm not sure that D 
 qualifies.


 On 14/10/10 23:00, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.


--Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Oct 16 2010
prev sibling next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from Steven Wawryk (stevenw acres.com.au)'s article

 C and C++ qualify.  I'm new to D and still learning about it, but with
 the deprecation of scoped classes and delete, I'm not sure that D qualifies.

Why? The elimination of scope and delete just serves to uglyify the relevant concepts (which are unsafe and infrequently used) and save keywords. The concepts can still be expressed: scope T -> std.typecons.scoped!T delete foo -> foo.__dtor(); GC.free(cast(void*) foo);
Oct 15 2010
parent Steven Wawryk <stevenw acres.com.au> writes:
dsimcha wrote:
 == Quote from Steven Wawryk (stevenw acres.com.au)'s article
 
 C and C++ qualify.  I'm new to D and still learning about it, but with
 the deprecation of scoped classes and delete, I'm not sure that D qualifies.

Why? The elimination of scope and delete just serves to uglyify the relevant concepts (which are unsafe and infrequently used) and save keywords. The concepts can still be expressed: scope T -> std.typecons.scoped!T

Good - ugly is better than nothing. Can this be used for class members of struct's too?
 delete foo -> foo.__dtor();  GC.free(cast(void*) foo);

If I wrote my own minimal run-time with no garbage collector I guess GC.free would be replaced by my own memory manager's free function. Does D allow me to hook my own allocation function into new?
Oct 16 2010
prev sibling parent "Denis Koroskin" <2korden gmail.com> writes:
On Sun, 17 Oct 2010 07:22:46 +0400, Steven Wawryk <stevenw acres.com.au>  
wrote:

 dsimcha wrote:
 == Quote from Steven Wawryk (stevenw acres.com.au)'s article

 C and C++ qualify.  I'm new to D and still learning about it, but with
 the deprecation of scoped classes and delete, I'm not sure that D  
 qualifies.

relevant concepts (which are unsafe and infrequently used) and save keywords. The concepts can still be expressed: scope T -> std.typecons.scoped!T

Good - ugly is better than nothing. Can this be used for class members of struct's too?
 delete foo -> foo.__dtor();  GC.free(cast(void*) foo);

If I wrote my own minimal run-time with no garbage collector I guess GC.free would be replaced by my own memory manager's free function. Does D allow me to hook my own allocation function into new?

New uses gc_malloc under the hood, override it and you should be fine.
Oct 16 2010
prev sibling next sibling parent reply SK <sk metrokings.com> writes:
On Thu, Oct 14, 2010 at 11:39 PM, Paulo Pinto <pjmlp progtools.org> wrote:
 You just ruled out C as a systems language.

No, C is a systems language and fits my definition. 1) C need not overlay software written in another language 2) C allows expression of essential machine independent concepts How did inline assembly become a requirement? For machine dependent code, I can just link C with assembly. But it's still easy to nitpick against C. For example, ANSI C cannot express the family of atomic operations, which one could argue are essential machine independent concepts.
Oct 15 2010
parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
Maybe you should improve your english skills. I was being sarcastic.

Next time, please read my email until the end, before hitting the reply 
button.

One of the Juanjo's requirements for a languange to be considered
a systems programming language, is for it to include support for
inline assembler.

I was just making a point that C fails his definition, because the
inline assembler you find in most compilers is a vendor extension
to the standard.

No one in his perfect mind would say that C is not a systems
programming language, but it fails the Juanjo's checkpoint list,
hence my reply.

--
Paulo

"SK" <sk metrokings.com> wrote in message 
news:mailman.628.1287155971.858.digitalmars-d puremagic.com...
 On Thu, Oct 14, 2010 at 11:39 PM, Paulo Pinto <pjmlp progtools.org> wrote:
 You just ruled out C as a systems language.

No, C is a systems language and fits my definition. 1) C need not overlay software written in another language 2) C allows expression of essential machine independent concepts How did inline assembly become a requirement? For machine dependent code, I can just link C with assembly. But it's still easy to nitpick against C. For example, ANSI C cannot express the family of atomic operations, which one could argue are essential machine independent concepts.

Oct 16 2010
parent reply Juanjo Alvarez <fake fakeemail.com> writes:
On Sat, 16 Oct 2010 10:36:48 +0200, "Paulo Pinto" 
<pjmlp progtools.org> wrote:
 No one in his perfect mind would say that C is not a systems
 programming language, but it fails the Juanjo's checkpoint list,
 hence my reply.

In my defense I must say that I never used a C compiler without an inline assembler.
Oct 16 2010
parent "Paulo Pinto" <pjmlp progtools.org> writes:
Visual C++ 64bit no longer supports inline assembly, but they do offer 
intrinsics instead
http://blogs.msdn.com/b/vcblog/archive/2007/10/18/new-intrinsic-support-in-visual-studio-2008.aspx


"Juanjo Alvarez" <fake fakeemail.com> wrote in message 
news:almarsoft.3746932674979703085 news.digitalmars.com...
 On Sat, 16 Oct 2010 10:36:48 +0200, "Paulo Pinto" <pjmlp progtools.org> 
 wrote:
 No one in his perfect mind would say that C is not a systems
 programming language, but it fails the Juanjo's checkpoint list,
 hence my reply.

In my defense I must say that I never used a C compiler without an inline assembler.

Oct 16 2010
prev sibling next sibling parent so <so so.do> writes:
Not really, you got to read it again.

On Sat, 16 Oct 2010 13:02:17 +0300, J=E9r=F4me M. Berger <jeberger free.=
fr>  =

wrote:

 so wrote:
 I asked the similar question on "What do people here use as an IDE?",=


 which i suppose the reason of this topic. And asked if anyone can nam=


 language that can replace C (other than these two).

 I got answers like Haskell, F#, C#, Scala, Ada, and there are many mo=


 they say.
 It looks like people here agree that all languages are system languag=



languages". A language may be "powerful" without being a systems language. Jerome

-- = Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 16 2010
prev sibling next sibling parent so <so so.do> writes:
No doubt.

On Sat, 16 Oct 2010 14:11:12 +0300, Justin Johansson <no spam.com> wrote=
:

 On 16/10/2010 9:02 PM, "J=E9r=F4me M. Berger" wrote:
 so wrote:
 I asked the similar question on "What do people here use as an IDE?"=



 which i suppose the reason of this topic. And asked if anyone can na=



 a
 language that can replace C (other than these two).

 I got answers like Haskell, F#, C#, Scala, Ada, and there are many m=



 they say.
 It looks like people here agree that all languages are system  =



 languages.

languages". A language may be "powerful" without being a systems language. Jerome

Excellent counterpoint. Could not have said it better. Justin

-- = Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 16 2010
prev sibling next sibling parent reply div0 <div0 sourceforge.net> writes:
On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

Something not mentioned so far: The language must be self hostable; i.e. you need to be able to write it's runtime in the language itself. -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk
Oct 16 2010
next sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 10/16/10 6:39 CDT, div0 wrote:
 On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

Something not mentioned so far: The language must be self hostable; i.e. you need to be able to write it's runtime in the language itself.

Solid one! Andrei
Oct 16 2010
prev sibling parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
Would that make Smalltalk, Lisp, Oberon, Modula-3, Component Pascal, Ada,
Mac Pascal system programming languages?

All of them were used to write operating systems, in some of them the 
operating system and
language are the same, kind of.

--
paulo

"div0" <div0 sourceforge.net> wrote in message 
news:i9c2ue$30f1$1 digitalmars.com...
 On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

Something not mentioned so far: The language must be self hostable; i.e. you need to be able to write it's runtime in the language itself. -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk

Oct 16 2010
parent reply div0 <div0 sourceforge.net> writes:
On 16/10/2010 19:27, Paulo Pinto wrote:
 Would that make Smalltalk, Lisp, Oberon, Modula-3, Component Pascal, Ada,
 Mac Pascal system programming languages?

 All of them were used to write operating systems, in some of them the
 operating system and
 language are the same, kind of.

Well true, but the main problem with a lot of those systems is that you can only program on them in that language; they are all special execptions rather than general computers. They used to make h/w Lisp machines back in the late 70s, where all the OS was written in Lisp; but you could only program them in Lisp. I wonder how they did the garbage collector as Lisp doesn't have pointers? I guess they either wrote the garbage collector entierly in assembly or added a bunch of Lisp functions to allow them to manipulate the address space, effectively added pointers to the language. For C, in principle you only need a trivial amount of assembly to handle the processor specific calls to switch privilege levels and load process/thread state. For something like Java/Python you'd need a huge amount of assembly if you wanted to avoid using another lower level language. There's nothing special about a systems language; it's just they have explicit facilities that make certain low level functionality easier to implement. You could implement an OS in BASIC using PEEK/POKE if you mad enough. -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk
Oct 16 2010
parent reply Walter Bright <newshound2 digitalmars.com> writes:
div0 wrote:
 There's nothing special about a systems language; it's just they have 
 explicit facilities that make certain low level functionality easier to 
 implement. You could implement an OS in BASIC using PEEK/POKE if you mad 
 enough.

I suppose it's like the difference between porn and art. It's impossible to write a bureaucratic rule to distinguish them, but it's easy to tell the difference just by looking at the two. "I know it when I see it!"
Oct 29 2010
next sibling parent reply Iain Buclaw <ibuclaw ubuntu.com> writes:
== Quote from Walter Bright (newshound2 digitalmars.com)'s article
 div0 wrote:
 There's nothing special about a systems language; it's just they have
 explicit facilities that make certain low level functionality easier to
 implement. You could implement an OS in BASIC using PEEK/POKE if you mad
 enough.

write a bureaucratic rule to distinguish them, but it's easy to tell the difference just by looking at the two. "I know it when I see it!"

Also known as the Elephant test: "is hard to describe, but instantly recognisable when spotted".
Oct 29 2010
parent reply Walter Bright <newshound2 digitalmars.com> writes:
Iain Buclaw wrote:
 == Quote from Walter Bright (newshound2 digitalmars.com)'s article
 div0 wrote:
 There's nothing special about a systems language; it's just they have
 explicit facilities that make certain low level functionality easier to
 implement. You could implement an OS in BASIC using PEEK/POKE if you mad
 enough.

write a bureaucratic rule to distinguish them, but it's easy to tell the difference just by looking at the two. "I know it when I see it!"

Also known as the Elephant test: "is hard to describe, but instantly recognisable when spotted".

Yeah. I think it's a waste of our time to try and define what a systems programming language is. For example, sure, you can write a gc in Java. The problem is, it is not a useful gc. Ditto for anything else "but you can do that in this non-systems language, so your rule is wrong."
Oct 30 2010
parent reply Don <nospam nospam.com> writes:
Walter Bright wrote:
 Iain Buclaw wrote:
 == Quote from Walter Bright (newshound2 digitalmars.com)'s article
 div0 wrote:
 There's nothing special about a systems language; it's just they have
 explicit facilities that make certain low level functionality easier to
 implement. You could implement an OS in BASIC using PEEK/POKE if you 
 mad
 enough.

impossible to write a bureaucratic rule to distinguish them, but it's easy to tell the difference just by looking at the two. "I know it when I see it!"

Also known as the Elephant test: "is hard to describe, but instantly recognisable when spotted".

Yeah. I think it's a waste of our time to try and define what a systems programming language is. For example, sure, you can write a gc in Java. The problem is, it is not a useful gc. Ditto for anything else "but you can do that in this non-systems language, so your rule is wrong."

Did the term "systems programming language" exist before C? I mean, asm isn't a "systems programming language", it's asm! Seems to me that it's a market segment term, which just means "competes with C".
Oct 30 2010
parent Walter Bright <newshound2 digitalmars.com> writes:
Don wrote:
 Did the term "systems programming language" exist before C? I mean, asm 
 isn't a "systems programming language", it's asm!
 Seems to me that it's a market segment term, which just means "competes 
 with C".

The first I encountered the term was the BLISS programming language. I think it means Basic Language for Implementation of Systems Software. BLISS predates C. http://en.wikipedia.org/wiki/BLISS
Oct 30 2010
prev sibling parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
On 30/10/2010 02:13, Walter Bright wrote:
 div0 wrote:
 There's nothing special about a systems language; it's just they have
 explicit facilities that make certain low level functionality easier
 to implement. You could implement an OS in BASIC using PEEK/POKE if
 you mad enough.

I suppose it's like the difference between porn and art. It's impossible to write a bureaucratic rule to distinguish them, but it's easy to tell the difference just by looking at the two. "I know it when I see it!"

In the vast majority of cases, yes, but is it *always* easy to tell the difference? Because if a bureaucratic rule was to made, it would have to work for *all* cases, otherwise it would not be very useful. Consider Chloe Sevigny's blowjob scene in the end of The Brown Bunny (an art house film). Art or porno? Or the photograph "Portrait of My British Wife" by Panayiotis Lamprou: http://www.guardian.co.uk/artanddesign/2010/sep/17/panayiotis-lamprou-portr it-wife-photography which will be displayed in the National Portrait Gallery. Art or porno? -_-' -- Bruno Medeiros - Software Engineer
Nov 09 2010
prev sibling next sibling parent so <so so.do> writes:
I'll just help you, because i am so nice!

If you go read you will see i asked the question "Name one?" quoting "If=
  =

it wasn't for C++, there are plenty of other powerfull languages out  =

there."

We are good so far? I hope yes!
You see that little sentence which is almost the first half of quote? "I=
f  =

it wasn't for C++"? I hope you do...

Now someone with a little reading comprehension (i suppose i do have som=
e)  =

would interpret that line like "Powerfull languages that could replace  =

C++".

So i did and asked if he could name one, it wasn't hard no?
Come on, you can do better than this...

Sorry if i am being harsh.

On Sat, 16 Oct 2010 13:02:17 +0300, J=E9r=F4me M. Berger <jeberger free.=
fr>  =

wrote:

 so wrote:
 I asked the similar question on "What do people here use as an IDE?",=


 which i suppose the reason of this topic. And asked if anyone can nam=


 language that can replace C (other than these two).

 I got answers like Haskell, F#, C#, Scala, Ada, and there are many mo=


 they say.
 It looks like people here agree that all languages are system languag=



languages". A language may be "powerful" without being a systems language. Jerome

-- = Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 16 2010
prev sibling next sibling parent so <so so.do> writes:
Wow you are hopeless, i give up.

On Sat, 16 Oct 2010 15:48:17 +0300, J=E9r=F4me M. Berger <jeberger free.=
fr>  =

wrote:

 so wrote:
 I'll just help you, because i am so nice!

 If you go read you will see i asked the question "Name one?" quoting =


 it wasn't for C++, there are plenty of other powerfull languages out
 there."

 We are good so far? I hope yes!
 You see that little sentence which is almost the first half of quote?=


 "If it wasn't for C++"? I hope you do...

 Now someone with a little reading comprehension (i suppose i do have
 some) would interpret that line like "Powerfull languages that could
 replace C++".

 So i did and asked if he could name one, it wasn't hard no?
 Come on, you can do better than this...

 Sorry if i am being harsh.


-- = Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Oct 16 2010
prev sibling next sibling parent SK <sk metrokings.com> writes:
On Sat, Oct 16, 2010 at 1:36 AM, Paulo Pinto <pjmlp progtools.org> wrote:
 Maybe you should improve your english skills. I was being sarcastic.

I ran a diagnostic on my English and guess what? It's just fine! What's not fine is the way Gmail displays threads. At least in my configuration, it looked like you were responding to my post. So now I'm a more enlightened Gmailer.
Oct 16 2010
prev sibling parent reply Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon
 for the usage this term (at least in this community) and
 also have some agreed upon examples of PLs that might also
 be members of the "set of systems languages".
 Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently;
 certainly it was not meant to be disparaging towards
 the D PL and hopefully it was not taken this way.

It's those programming languages whose type systems can be used to move and navigate across water (but can sink if you rock it enough). Compare to other languages whose type systems merely floats on water, but don't move anywhere... (although some guarantee they will never sink no matter how much you rock it!) -- Bruno Medeiros - Software Engineer
Oct 29 2010
parent reply retard <re tard.com.invalid> writes:
Fri, 29 Oct 2010 20:54:03 +0100, Bruno Medeiros wrote:

 On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon for the usage this
 term (at least in this community) and also have some agreed upon
 examples of PLs that might also be members of the "set of systems
 languages". Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently; certainly it was not
 meant to be disparaging towards the D PL and hopefully it was not taken
 this way.

It's those programming languages whose type systems can be used to move and navigate across water (but can sink if you rock it enough).

It's probably very hard to find an accurate definition for this kind of term. The same can be said about terms such as 'functional language'. Many 'pragmatic' software engineering terms are based on emotions, broken mental models, inaccurate or purposefully wrong information. In my opinion these are all subtypes of a thing called 'marketing bullshit'.
 Compare
 to other languages whose type systems merely floats on water, but don't
 move anywhere... (although some guarantee they will never sink no matter
 how much you rock it!)

You can easily create a language with guarantees about safety: no segfaults, no index out of bounds errors, no overflows etc. Some of these languages even guarantee termination. However, they're not Turing complete in that case, which reduces their usefulness. Another thing is, these guarantees can be expensive. However, the trend has been towards higher level languages. One reason is Moore's law, you have achieved the same results with a N times slower implementation using the N times faster hardware.
Oct 29 2010
parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
On 29/10/2010 21:30, retard wrote:
 Fri, 29 Oct 2010 20:54:03 +0100, Bruno Medeiros wrote:

 On 14/10/2010 13:30, Justin Johansson wrote:
 Touted often around here is the term "systems language".

 May we please discuss a definition to be agreed upon for the usage this
 term (at least in this community) and also have some agreed upon
 examples of PLs that might also be members of the "set of systems
 languages". Given a general subjective term like this, one would have
 to suspect that the D PL is not the only member of this set.

 Cheers
 Justin Johansson

 PS. my apologies for posting a lame joke recently; certainly it was not
 meant to be disparaging towards the D PL and hopefully it was not taken
 this way.

It's those programming languages whose type systems can be used to move and navigate across water (but can sink if you rock it enough).

It's probably very hard to find an accurate definition for this kind of term. The same can be said about terms such as 'functional language'. Many 'pragmatic' software engineering terms are based on emotions, broken mental models, inaccurate or purposefully wrong information. In my opinion these are all subtypes of a thing called 'marketing bullshit'.
 Compare
 to other languages whose type systems merely floats on water, but don't
 move anywhere... (although some guarantee they will never sink no matter
 how much you rock it!)

You can easily create a language with guarantees about safety: no segfaults, no index out of bounds errors, no overflows etc. Some of these languages even guarantee termination. However, they're not Turing complete in that case, which reduces their usefulness. Another thing is, these guarantees can be expensive. However, the trend has been towards higher level languages. One reason is Moore's law, you have achieved the same results with a N times slower implementation using the N times faster hardware.

Why this serious reply? Perhaps I fell victim to an overly accurate analogy, but my previous post was a joke/satire. -- Bruno Medeiros - Software Engineer
Nov 09 2010