<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx</link><description>In geometry, "orthogonal" basically means the same thing as "perpendicular", or "at right angles". The walls are orthogonal to the floor. But algebraists extend the meaning of "orthogonal" beyond mere perpendicularity; to an algebraist, two aspects of</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#9700332</link><pubDate>Fri, 05 Jun 2009 00:43:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9700332</guid><dc:creator>Ben Tremblay</dc:creator><description>&lt;p&gt;So ... thank you. Now I can refer to this post when pointing to how my discourse / deliberative system (It's dialectical ... and dialogical, too!) is &amp;lt;i&amp;gt;orthogonal&amp;lt;/i&amp;gt; to canonical forum software. I.e.: &amp;quot;&amp;lt;b&amp;gt; two aspects of a system are orthogonal if one can be varied without changing the value of the other&amp;lt;/b&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;consider yourself tweeted&lt;/p&gt;
&lt;p&gt;--bentrem&lt;/p&gt;
&lt;p&gt;p.s. yes, my link points to something substantial&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9700332" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#9502583</link><pubDate>Tue, 24 Mar 2009 00:10:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9502583</guid><dc:creator>Pro developer</dc:creator><description>&lt;P&gt;Do you know that signals can be represented as vectors. Infact they are vectors. And hence the Fourier series and transform are applicable because of the property of orthogonality. Its the beauty of science. I read communication books quiet often and am quite baffled by the way the writers use the concept of orthogonality there. &amp;nbsp;&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Indeed, I studied a fair amount of linear algebra during my undergraduate degree. It has been a long time since I looked at the transforms from the signal space to&amp;nbsp;the frequency&amp;nbsp;space though. I remember hardly any of it.&lt;/P&gt;
&lt;P&gt;But indeed, the fact that one can form an orthonormal basis for signals is the key to the decomposition of the signal. -- Eric&lt;/P&gt;&lt;/DIV&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9502583" width="1" height="1"&gt;</description></item><item><title>Future Breaking Changes, Part Two</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#4789408</link><pubDate>Thu, 06 Sep 2007 18:29:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4789408</guid><dc:creator>Fabulous Adventures In Coding</dc:creator><description>&lt;p&gt;Last time I mentioned that one of the subtleties of programming language design is weighing the benefit&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4789408" width="1" height="1"&gt;</description></item><item><title>Subtleties of C# IL codegen</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#4432047</link><pubDate>Fri, 17 Aug 2007 19:36:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4432047</guid><dc:creator>Fabulous Adventures In Coding</dc:creator><description>&lt;p&gt;It must be CLR week over at The Old New Thing because it's been non-stop posts about C# lately. Raymond's&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4432047" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#513205</link><pubDate>Mon, 16 Jan 2006 07:51:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:513205</guid><dc:creator>John</dc:creator><description>If you can't remove unreachable targetted labels because they are targeted, why don't you just remove the code which targets the label too? If the label is truly unreachable, then code which targets it is redundant.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=513205" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#489050</link><pubDate>Fri, 04 Nov 2005 17:28:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:489050</guid><dc:creator>Eric Lippert</dc:creator><description>First off, as mentioned above, that code is not even legal C#.  Returning from a finally is forbidden in C#.&lt;br&gt;&lt;br&gt;But suppose it were legal.  Then the reachability analysis would be (assuming that the try is reachable)&lt;br&gt;&lt;br&gt;goto foo -- beginning is reachable, end is unreachable&lt;br&gt;return true -- beginning is reachable, end is unreachable&lt;br&gt;foo: -- label is targetted but unreachable&lt;br&gt;return false -- unreachable&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=489050" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#488897</link><pubDate>Fri, 04 Nov 2005 04:53:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488897</guid><dc:creator>Kyle Lahnakoski</dc:creator><description>Referring to &lt;br&gt;&lt;br&gt;try {&lt;br&gt;goto foo;&lt;br&gt;} finally {&lt;br&gt;return true;&lt;br&gt;}&lt;br&gt;foo:&lt;br&gt;return false;&lt;br&gt;&lt;br&gt;&lt;br&gt;I do not see how the &amp;quot;goto foo&amp;quot; is reachable.  It's return is obviously overridden by the finally clause.  &lt;br&gt;&lt;br&gt;Considering the Finally clause as a subroutine, and having it called before all exit points in the try and catch clauses, should make the reachability analysis trivial.&lt;br&gt;&lt;br&gt;A quick inspection of Soot code, JimpleBodyBuilder::createTryCatchFinally(), appears to do just this.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=488897" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#487747</link><pubDate>Tue, 01 Nov 2005 20:21:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487747</guid><dc:creator>Eric Lippert</dc:creator><description>That's essentially what we do.  Code that is unreachable is stripped totally from the tree before code generation, except for targetted labels which are turned into nops.  We then do an additional reachability check on the generated basic blocks and remove unreachable untargetted blocks.&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=487747" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#487662</link><pubDate>Tue, 01 Nov 2005 17:02:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487662</guid><dc:creator>Stuart Ballard</dc:creator><description>Could you just convert unreachable code *always* to nops in your &amp;quot;early&amp;quot; pass through the tree, and then have a pass later that removes unnecessary nops?&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=487662" width="1" height="1"&gt;</description></item><item><title>re: Five-Dollar Words for Programmers, Part Two: Orthogonal</title><link>http://blogs.msdn.com/b/ericlippert/archive/2005/10/28/five-dollar-words-for-programmers-part-two-orthogonal.aspx#486992</link><pubDate>Sun, 30 Oct 2005 17:37:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486992</guid><dc:creator>Eric Lippert</dc:creator><description>Right -- no matter what happens, that try block has got to be left somehow, and its got to go somewhere, so we'll probably be generating a no-op somewhere for it to go, and we're back in the situation that we're already in.  My musings are more along the lines of whether there's a cleaner way to represent this situation in the implementation. I'm working on code that removes the unreachable portions of the bound tree earlier and its a conceptual pain in the rear that I can't remove unreachable targetted labels.  I think though that I'm going to live with it since as you say, there's not really a good alternative.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=486992" width="1" height="1"&gt;</description></item></channel></rss>