<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Dream ESL Language</title>
	<atom:link href="http://jakob.engbloms.se/archives/1008/feed" rel="self" type="application/rss+xml" />
	<link>http://jakob.engbloms.se/archives/1008?&amp;owa_from=feed&amp;owa_sid=</link>
	<description>Computer Technology: Simulation, Virtualization, Virtual Platforms, Embedded, Multicore and Multiprocessing (by Jakob Engblom)</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:52:14 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Observations from Uppsala &#187; FFast: Good Idea, Too Bad About the Implementation</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2745</link>
		<dc:creator>Observations from Uppsala &#187; FFast: Good Idea, Too Bad About the Implementation</dc:creator>
		<pubDate>Sun, 11 Apr 2010 19:23:34 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2745</guid>
		<description>[...] configuration and management features. I have touched on this topic before, in the posts &#8220;Dream ESL Language&#8221; (VM as the basis for a simulator) and &#8220;The JVM as Universal Parallel Glue&#8221; (that [...]</description>
		<content:encoded><![CDATA[<p>[...] configuration and management features. I have touched on this topic before, in the posts &#8220;Dream ESL Language&#8221; (VM as the basis for a simulator) and &#8220;The JVM as Universal Parallel Glue&#8221; (that [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phrank</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2736</link>
		<dc:creator>Phrank</dc:creator>
		<pubDate>Thu, 25 Mar 2010 05:04:13 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2736</guid>
		<description>Chiming in a bit late here... SystemC is at best a clever hack - an unholy combination of C macros and C++ templates.  Because C++ is so static and has no reflection capabilities you often repeat yourself - needing to pass a string to the constructor for signal names, for example - very redundant.  Violates the DRY principle - Don&#039;t Repeat Yourself.

And then there are the error messages that come out of SystemC.  You almost need another parser just to parse them.  Basically they are C++ template error messages.  I really can&#039;t figure out how hardware engineers are supposed to be able to deal with them.  And I suspect that many hardware folks will balk when they see their first multi-page compilation error report.  I&#039;ve found that g++ 4.x is much pickier about things than g++ 3.x was - a lot of our code is broken under g++ 4.x (ambiguous operator overloading, ambiguous this and that...).

We definitely need something else.  If SystemC is supposed to be the answer, then the question was not formulated correctly.</description>
		<content:encoded><![CDATA[<p>Chiming in a bit late here&#8230; SystemC is at best a clever hack &#8211; an unholy combination of C macros and C++ templates.  Because C++ is so static and has no reflection capabilities you often repeat yourself &#8211; needing to pass a string to the constructor for signal names, for example &#8211; very redundant.  Violates the DRY principle &#8211; Don&#8217;t Repeat Yourself.</p>
<p>And then there are the error messages that come out of SystemC.  You almost need another parser just to parse them.  Basically they are C++ template error messages.  I really can&#8217;t figure out how hardware engineers are supposed to be able to deal with them.  And I suspect that many hardware folks will balk when they see their first multi-page compilation error report.  I&#8217;ve found that g++ 4.x is much pickier about things than g++ 3.x was &#8211; a lot of our code is broken under g++ 4.x (ambiguous operator overloading, ambiguous this and that&#8230;).</p>
<p>We definitely need something else.  If SystemC is supposed to be the answer, then the question was not formulated correctly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Observations from Uppsala &#187; Describe is not the same as Design</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2690</link>
		<dc:creator>Observations from Uppsala &#187; Describe is not the same as Design</dc:creator>
		<pubDate>Mon, 15 Feb 2010 20:56:44 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2690</guid>
		<description>[...] discussion on my previous blog post about &#8220;the ideal ESL language&#8221; made me think some more about the purpose of a hardware modeling or description language. If [...]</description>
		<content:encoded><![CDATA[<p>[...] discussion on my previous blog post about &#8220;the ideal ESL language&#8221; made me think some more about the purpose of a hardware modeling or description language. If [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2689</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Mon, 15 Feb 2010 20:56:14 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2689</guid>
		<description>Synthesizability is an interesting requirement. I think there is a fundamental problem with requiring that, as it makes the language too much geared towards hardware and much less into a software language.  You want to able to stub things, use arbitrary data structures, etc.</description>
		<content:encoded><![CDATA[<p>Synthesizability is an interesting requirement. I think there is a fundamental problem with requiring that, as it makes the language too much geared towards hardware and much less into a software language.  You want to able to stub things, use arbitrary data structures, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rishiyur Nikhil</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2684</link>
		<dc:creator>Rishiyur Nikhil</dc:creator>
		<pubDate>Thu, 11 Feb 2010 03:44:22 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2684</guid>
		<description>Jakob, thanks for referring to Bluespec as &quot;cool&quot;!  I fully agree with your desideratum: &quot;Basic semantics given by a virtual machine&quot;.  The semantics of BSV (Bluespec SystemVerilog) are explained and understood in terms of an abstract collection of atomic rewrite rules operating on abstract state in abstract discrete time.  We have gone through at least three radically different surface syntaxes for the same basic semantic idea, initially a Haskell-like syntax before Bluespec, Inc. was founded (which today we fondly refer to as &quot;Bluespec Classic&quot;), and now BSV which builds on SystemVerilog notations.  For a while we even had a syntax based on SystemC (called ESE).

Regarding reflection and introspection in BSV, rules, functions, modules, and interfaces are first-class data types and are completely manipulable using higher-order functions during static elaboration.  The FSM embedded domain-specific language in BSV, and our recently announced &quot;PAClib&quot; library (Pipeline Architecture Composers) makes extensive use of this capability.

Another desideratum I&#039;d add is &quot;full synthesizability&quot;, so that even very high-level models can be mapped easily to FPGA/emulation platforms, thereby exploiting their parallelism to provide, effectively, VERY fast simulation.</description>
		<content:encoded><![CDATA[<p>Jakob, thanks for referring to Bluespec as &#8220;cool&#8221;!  I fully agree with your desideratum: &#8220;Basic semantics given by a virtual machine&#8221;.  The semantics of BSV (Bluespec SystemVerilog) are explained and understood in terms of an abstract collection of atomic rewrite rules operating on abstract state in abstract discrete time.  We have gone through at least three radically different surface syntaxes for the same basic semantic idea, initially a Haskell-like syntax before Bluespec, Inc. was founded (which today we fondly refer to as &#8220;Bluespec Classic&#8221;), and now BSV which builds on SystemVerilog notations.  For a while we even had a syntax based on SystemC (called ESE).</p>
<p>Regarding reflection and introspection in BSV, rules, functions, modules, and interfaces are first-class data types and are completely manipulable using higher-order functions during static elaboration.  The FSM embedded domain-specific language in BSV, and our recently announced &#8220;PAClib&#8221; library (Pipeline Architecture Composers) makes extensive use of this capability.</p>
<p>Another desideratum I&#8217;d add is &#8220;full synthesizability&#8221;, so that even very high-level models can be mapped easily to FPGA/emulation platforms, thereby exploiting their parallelism to provide, effectively, VERY fast simulation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2672</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Sun, 31 Jan 2010 08:41:19 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2672</guid>
		<description>But SystemC is far from a good language, as it is based on the quite old-fashioned C++ core language. No reflection, no support for running on virtual machines, no automatic memory allocation, horribly intricate semantics, no dynamic linking and loading of modules at runtime, ... so I feel we need something better for people to actually program in.  It is just not modern enough to be a good language for actual programming of models.</description>
		<content:encoded><![CDATA[<p>But SystemC is far from a good language, as it is based on the quite old-fashioned C++ core language. No reflection, no support for running on virtual machines, no automatic memory allocation, horribly intricate semantics, no dynamic linking and loading of modules at runtime, &#8230; so I feel we need something better for people to actually program in.  It is just not modern enough to be a good language for actual programming of models.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ran Avinun</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2671</link>
		<dc:creator>Ran Avinun</dc:creator>
		<pubDate>Sun, 31 Jan 2010 00:26:52 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2671</guid>
		<description>It seems like SystemC is emerging as the key language for ESL design being used for  new IP design entry level, architectural analysis and virtual prototyping with link to implementation and verification. Read more info at my blog at http://tinyurl.com/ydf8pjx</description>
		<content:encoded><![CDATA[<p>It seems like SystemC is emerging as the key language for ESL design being used for  new IP design entry level, architectural analysis and virtual prototyping with link to implementation and verification. Read more info at my blog at <a href="http://tinyurl.com/ydf8pjx" rel="nofollow">http://tinyurl.com/ydf8pjx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2614</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Wed, 02 Dec 2009 18:14:57 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2614</guid>
		<description>True, but the very fact that languages come from the smaller comapnies seems to indicate that being inventive is not a matter of money, resources, or manpower. 

Getting a language accepted by a large community is another question altogether.  And that&#039;s my main rub. 

We need to find a way to agree on a level of interoperability that is lower than language source code, so that language innovation can take place. If we are tied to source languages for interoperability, we will be very stuck for a long time.</description>
		<content:encoded><![CDATA[<p>True, but the very fact that languages come from the smaller comapnies seems to indicate that being inventive is not a matter of money, resources, or manpower. </p>
<p>Getting a language accepted by a large community is another question altogether.  And that&#8217;s my main rub. </p>
<p>We need to find a way to agree on a level of interoperability that is lower than language source code, so that language innovation can take place. If we are tied to source languages for interoperability, we will be very stuck for a long time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grant Martin</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2611</link>
		<dc:creator>Grant Martin</dc:creator>
		<pubDate>Mon, 30 Nov 2009 20:00:24 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2611</guid>
		<description>Yes, but interesting to note that neither Bluespec nor &quot;e&quot; came from the &quot;Big 3&quot;.  The past many years, most of the ESL cool things have come from small companies.   We&#039;ll have to see if the future brings a better track record - all three of the Big 3 have some investments in this area and have done some new things.</description>
		<content:encoded><![CDATA[<p>Yes, but interesting to note that neither Bluespec nor &#8220;e&#8221; came from the &#8220;Big 3&#8243;.  The past many years, most of the ESL cool things have come from small companies.   We&#8217;ll have to see if the future brings a better track record &#8211; all three of the Big 3 have some investments in this area and have done some new things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2609</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Mon, 30 Nov 2009 18:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2609</guid>
		<description>&lt;blockquote cite=&quot;#commentbody-2607&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;#comment-2607&quot; rel=&quot;nofollow&quot;&gt;Grant Martin&lt;/a&gt; :&lt;/strong&gt;Something about having the profits of what are still partial monopolies gives Microsoft a lot more resources to invest in a whole host of language approaches, as well as in fundamental research.&lt;/blockquote&gt;
That is true to some extent, but there is also the clear appreciation that programmer productivity and ease of use matters far more than any adherence to standards beyond the basic platform ABI and API.  What &quot;EDA&quot; could do quite easily is to stop discussing languages for standards and rather move to platform ABI and some particular APIs.  An ESL virtual machine would be great... but I guess that won&#039;t replace SystemC any day soon.

&lt;blockquote&gt;
  Clearly, a lot of interesting results have emerged, and as Jakob says, it would be very interesting if there were similar moves in EDA/ESL towards better languages.  However, even when the big EDA companies had some near-monopoly profits in various domains, they were not very innovative nor very visionary in really pushing design methods and fundamental tools and languages.   Given the current state of EDA, I don’t see the innovations likely to come from the largest (albeit, some shrinking) companies soon.
&lt;/blockquote&gt;
Still, to be fair, there are some really cool things that have come out of the EDA field.  Things like BlueSpec and &quot;e&quot; are pretty cool.</description>
		<content:encoded><![CDATA[<blockquote cite="#commentbody-2607"><p>
<strong><a href="#comment-2607" rel="nofollow">Grant Martin</a> :</strong>Something about having the profits of what are still partial monopolies gives Microsoft a lot more resources to invest in a whole host of language approaches, as well as in fundamental research.</p></blockquote>
<p>That is true to some extent, but there is also the clear appreciation that programmer productivity and ease of use matters far more than any adherence to standards beyond the basic platform ABI and API.  What &#8220;EDA&#8221; could do quite easily is to stop discussing languages for standards and rather move to platform ABI and some particular APIs.  An ESL virtual machine would be great&#8230; but I guess that won&#8217;t replace SystemC any day soon.</p>
<blockquote><p>
  Clearly, a lot of interesting results have emerged, and as Jakob says, it would be very interesting if there were similar moves in EDA/ESL towards better languages.  However, even when the big EDA companies had some near-monopoly profits in various domains, they were not very innovative nor very visionary in really pushing design methods and fundamental tools and languages.   Given the current state of EDA, I don’t see the innovations likely to come from the largest (albeit, some shrinking) companies soon.
</p></blockquote>
<p>Still, to be fair, there are some really cool things that have come out of the EDA field.  Things like BlueSpec and &#8220;e&#8221; are pretty cool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grant Martin</title>
		<link>http://jakob.engbloms.se/archives/1008/comment-page-1#comment-2607</link>
		<dc:creator>Grant Martin</dc:creator>
		<pubDate>Sat, 28 Nov 2009 01:23:27 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1008#comment-2607</guid>
		<description>I suspect that if Microsoft developed more hardware, and developed commercial EDA and ESL tools, we might see more innovation in languages in the EDA and ESL domain.  Something about having the profits of what are still partial monopolies gives Microsoft a lot more resources to invest in a whole host of language approaches, as well as in fundamental research.  Clearly, a lot of interesting results have emerged, and as Jakob says, it would be very interesting if there were similar moves in EDA/ESL towards better languages.  However, even when the big EDA companies had some near-monopoly profits in various domains, they were not very innovative nor very visionary in really pushing design methods and fundamental tools and languages.   Given the current state of EDA, I don&#039;t see the innovations likely to come from the largest (albeit, some shrinking) companies soon.</description>
		<content:encoded><![CDATA[<p>I suspect that if Microsoft developed more hardware, and developed commercial EDA and ESL tools, we might see more innovation in languages in the EDA and ESL domain.  Something about having the profits of what are still partial monopolies gives Microsoft a lot more resources to invest in a whole host of language approaches, as well as in fundamental research.  Clearly, a lot of interesting results have emerged, and as Jakob says, it would be very interesting if there were similar moves in EDA/ESL towards better languages.  However, even when the big EDA companies had some near-monopoly profits in various domains, they were not very innovative nor very visionary in really pushing design methods and fundamental tools and languages.   Given the current state of EDA, I don&#8217;t see the innovations likely to come from the largest (albeit, some shrinking) companies soon.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
