<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for Darkman</title>
    <link>http://www.advogato.org/person/Darkman/</link>
    <description>Advogato blog for Darkman</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Tue, 7 Oct 2008 16:16:13 GMT</pubDate>
    <item>
      <pubDate>Tue, 23 Jan 2001 19:26:24 GMT</pubDate>
      <title>23 Jan 2001</title>
      <link>http://www.advogato.org/person/Darkman/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/Darkman/diary.html?start=0</guid>
      <description>Hmm, well, just read the artice on altering C syntax "a 
thread on the c programming language", by 
&lt;a href="http://www.advogato.org/person/apgarcia/" &gt;apgarcia&lt;/a&gt;.  Maybe because I 
do something 
different from most (Scientific and numerical analysis 
rather than systems, windoing or end-user applications), 
there are a few points I'd like to make.

&lt;p&gt; &lt;p&gt; Arsising from the article, &lt;b&gt;Difference between 
assignment 
and comparison:&lt;/b&gt;
It is impossible to confuse Fortran's = for assignment, 
and .eq. for comparison testing. That's the big reason why 
I use the dot notation, even through F90 does allow == for 
comparison.  

&lt;p&gt; &lt;p&gt; Additionally, there are a few related points, not 
broached 
in the article.

&lt;p&gt; &lt;p&gt; &lt;b&gt;Missing features&lt;/b&gt;
A programming language is designed to be run on an 
particular set of hardware.  However, name a language that 
can acess vector registers well?

&lt;p&gt; &lt;p&gt; This requires the language to have proper semantics for 
vector operations, otherwise your compiler will have to use 
some guesswork, making it difficult to predict behaviour.  
This is not present in C.  I think that this is a barrier 
to using hardware efficently (I cite the PS2 - apparently 
it's vector registers are vastly underused).

&lt;p&gt; &lt;p&gt; Additionally, if doing something that is inherently 
vector 
(or matrix) based, a propert vector syntax makes the whole 
code a lot more readable, even if running on scaler 
hardware.

&lt;p&gt; &lt;p&gt; &lt;b&gt;Variable declarations&lt;/b&gt;
Compare:
&lt;ul&gt;&lt;li&gt;integer, static, dimension(20) :: variable
&lt;li&gt;static int variable[20];&lt;/ul&gt;

&lt;p&gt; &lt;p&gt; Which is easier to read?  I suspect that many would say 
the 
latter, due to familarity.  I would argure the former 
(Fortran style).  The first thing on the line tells you 
what type it is, rather buried in the middle.  It makes the 
fact that an array different to a scalar apparent, rather 
than a modification to the name.

&lt;p&gt; &lt;p&gt; What about:
&lt;ul&gt;&lt;li&gt;real, pointer :: p
&lt;li&gt;float * p;&lt;/ul&gt;


</description>
    </item>
  </channel>
</rss>
