Backend nearly entirely converted to D

Jacob Carlborg doob at me.com
Thu Nov 8 17:13:55 UTC 2018


On 2018-11-07 23:58, Walter Bright wrote:
> Slides and video link:
> 
>   http://nwcpp.org/october-2018.html
> 
> On 11/7/2018 2:08 PM, H. S. Teoh wrote:
>> I don't speak for the compiler devs, but IMO, one-letter variables are
>> OK if they are local, and cover a relatively small scope.  Java-style
>> verbosity IMO makes code *harder* to read because the verbosity gets in
>> your face, crowding out the more interesting (and important) larger
>> picture of code structure.
>>
>> As Walter said in his recent talk, the length of variable names (or
>> identifiers in general, really) should roughly correspond to their
>> scope: local variable names ought to be concise, but global variables
>> ought to be verbose (both to avoid identifier collision when a larger
>> amount of code is concerned, and also to serve as a convenient visual
>> indication that yes it's a global).
> 
> Yes, exactly.
> 

I guess we have very different ideas on what "small scope" is. For me it 
means around 10 lines. Here's an example in the DMD code base, the 
method for doing the semantic analyze on a call expression [1]. It's 902 
lines long and has a parameter called "exp". Another example, the 
semantic analyze for an is expression [2], 310 lines long. It has a 
parameter called "e".

Someone familiar with the code base might know that the convention is 
that a variable of a type inheriting from the Expression class is 
usually called "e". Someone new to the code base will most likely not. I 
cannot see how starting to call the variable "expression" or 
"callExpression" would be disrupt. Currently when someone familiar with 
the code base reads the code and sees a variable named "e" the developer 
will think "hey, I know by convention that is usual an expression". If 
the variable was renamed to "expression" then both the one familiar and 
unfamiliar with the code base can immediately read that this variable 
holds an expression.

[1] 
https://github.com/dlang/dmd/blob/c3dcc76327cdd1cebd9767d9ce738bcbc4db2beb/src/dmd/expressionsem.d#L3812-L4713

[2] 
https://github.com/dlang/dmd/blob/c3dcc76327cdd1cebd9767d9ce738bcbc4db2beb/src/dmd/expressionsem.d#L4924-L5233

-- 
/Jacob Carlborg


More information about the Digitalmars-d-announce mailing list