Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Languages Misc > Re: Declaration...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 50 Topic 1065 of 1203
Post > Topic >>

Re: Declaration design preference: type or name first

by Christopher Barber <cbarber@[EMAIL PROTECTED] > Oct 30, 2007 at 12:04 PM

James Harris wrote:
> As a matter of preference the declarations of some languages put the
> type before the name such as
> 
>    int x = 2;
> 
> where others put the variable name before the type as in
> 
>    x: integer := 2;
> 
> I can see advantages to each and would be interested to know what
> other language designers and programmers (i.e. the customers of
> language designers) prefer.

It probably depends on other details of your language's syntax. In the
Curl
language we put the type after the variable name, as in your second
example. In
 Curl, variables are declared using a 'let' syntax and the type annotation
is
optional, defaulting to a generic 'any' type if omitted:

  let x:int = 2
  let y = 3

Since the type is optional, we felt that it made more sense for it to come
after the required part of the syntax. We also felt that the name is more
im****tant than the type when you are reading code, so it should come
first. In
languages such as C, with no explicit variable declaration keyword the
type
serves a dual purpose indicating "there is a variable here".

Other im****tant considerations should be to what degree you want your
syntax to
resemble other particular languages.

> Also, my current design, has gone through some iterations of minor
> detail and currently has the ability to allow either the name or the
> type first. I'd be interested to know what people think of this
> flexibility. Is it a good thing? Or does it simply make the code too
> hard to read?

I personally don't like the idea. I don't think the flexibility brings any
particular benefit. Probably the first thing anyone would do when using
your
language would be to pick a preferred order and use it consistently in
their
own projects, but then they will find code using the opposite convention
slightly more difficult to read.

> Some examples just to illustrate the point, not in a final form:
> 
> Name first
>    var fred <integer>
>    var freda <integer> = 0
>    var char_value <integer 8>
>    var ages <array (0 ... 150) of <integer>>
>    var x, y = 2, z <float>
> 
> Type first
>    var <integer> fred
>    var <integer> freda = 0
>    var <integer 8> char_value
>    var <array (0 ... 150) of <integer>> ages
>    var <float> x, y = 2, z
> 
> The last one having multiple names looks a bit odd with the names
> first, perhaps. However, I think it could still be compiled.

I agree, I think it looks strange. In Curl, there is no way to specify the
same
type for multiple variables (except the implicit 'any' type), so you would
have
to write:

  let x:float, y:float = 2, z:float

I think that given these two forms, I prefer the second, with the type
always
going first.

- Christopher
 




 50 Posts in Topic:
Declaration design preference: type or name first
James Harris <james.ha  2007-10-30 06:25:49 
Re: Declaration design preference: type or name first
Christopher Barber <cb  2007-10-30 12:04:41 
Re: Declaration design preference: type or name first
Robbert Haarman <comp.  2007-10-31 11:18:39 
Re: Declaration design preference: type or name first
Marco van de Voort <ma  2007-10-31 14:53:22 
Re: Declaration design preference: type or name first
"cr88192" <c  2007-10-31 08:29:19 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-10-30 16:01:31 
Re: Declaration design preference: type or name first
"cr88192" <c  2007-10-31 11:22:00 
Re: Declaration design preference: type or name first
Logan Shaw <lshaw-usen  2007-10-30 21:54:26 
Re: Declaration design preference: type or name first
Mike Sieweke <msieweke  2007-10-31 22:47:45 
Re: Declaration design preference: type or name first
CBFalconer <cbfalconer  2007-10-31 22:38:47 
Re: Declaration design preference: type or name first
Marco van de Voort <ma  2007-11-01 08:38:05 
Re: Declaration design preference: type or name first
Logan Shaw <lshaw-usen  2007-10-31 23:45:26 
Re: Declaration design preference: type or name first
Mike Sieweke <msieweke  2007-11-01 21:26:24 
Re: Declaration design preference: type or name first
Richard Heathfield <rj  2007-11-01 05:31:44 
Re: Declaration design preference: type or name first
Marco van de Voort <ma  2007-11-01 08:39:55 
Re: Declaration design preference: type or name first
Richard Heathfield <rj  2007-11-01 08:59:25 
Re: Declaration design preference: type or name first
Marco van de Voort <ma  2007-11-01 08:38:56 
Re: Declaration design preference: type or name first
cri@[EMAIL PROTECTED] (R  2007-11-01 14:40:44 
Re: Declaration design preference: type or name first
ram@[EMAIL PROTECTED] (S  2007-11-01 14:50:16 
Re: Declaration design preference: type or name first
cri@[EMAIL PROTECTED] (R  2007-11-01 15:52:23 
Re: Declaration design preference: type or name first
Logan Shaw <lshaw-usen  2007-11-01 20:09:07 
Re: Declaration design preference: type or name first
cri@[EMAIL PROTECTED] (R  2007-11-02 03:52:34 
Re: Declaration design preference: type or name first
Logan Shaw <lshaw-usen  2007-11-02 00:57:24 
Re: Declaration design preference: type or name first
cri@[EMAIL PROTECTED] (R  2007-11-03 15:53:21 
Re: Declaration design preference: type or name first
"cr88192" <c  2007-11-03 22:27:59 
Re: Declaration design preference: type or name first
thomas.mertes@[EMAIL PROT  2007-10-30 23:48:38 
Re: Declaration design preference: type or name first
thomas.mertes@[EMAIL PROT  2007-10-31 00:12:07 
Re: Declaration design preference: type or name first
torbenm@[EMAIL PROTECTED]  2007-10-31 09:27:23 
Re: Declaration design preference: type or name first
thomas.mertes@[EMAIL PROT  2007-10-31 01:38:54 
Re: Declaration design preference: type or name first
Marco van de Voort <ma  2007-10-31 14:45:15 
Re: Declaration design preference: type or name first
Ed Prochak <edprochak@  2007-10-31 17:28:45 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-01 13:56:47 
Re: Declaration design preference: type or name first
"cr88192" <c  2007-11-02 16:01:12 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-02 01:08:01 
Re: Declaration design preference: type or name first
CBFalconer <cbfalconer  2007-11-02 07:51:18 
Re: Declaration design preference: type or name first
Tzy-Jye Daniel Lin <dt  2007-11-03 03:28:22 
Re: Declaration design preference: type or name first
"cr88192" <c  2007-11-03 21:54:27 
Re: Declaration design preference: type or name first
torbenm@[EMAIL PROTECTED]  2007-11-05 09:56:58 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-05 10:33:42 
Re: Declaration design preference: type or name first
torbenm@[EMAIL PROTECTED]  2007-11-06 09:39:46 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-11 10:10:54 
Re: Declaration design preference: type or name first
Robbert Haarman <comp.  2007-11-12 12:17:10 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-12 15:18:18 
Re: Declaration design preference: type or name first
Robbert Haarman <comp.  2007-11-13 09:43:11 
Re: Declaration design preference: type or name first
torbenm@[EMAIL PROTECTED]  2007-11-13 10:14:08 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-13 15:47:48 
Re: Declaration design preference: type or name first
Robbert Haarman <comp.  2007-11-14 03:36:24 
Re: Declaration design preference: type or name first
anw@[EMAIL PROTECTED] (D  2007-11-14 13:11:46 
Re: Declaration design preference: type or name first
torbenm@[EMAIL PROTECTED]  2007-11-14 11:36:07 
Re: Declaration design preference: type or name first
James Harris <james.ha  2007-11-13 16:04:30 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 18 23:03:27 CDT 2008.