<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A brick short</title>
	<atom:link href="https://abrickshort.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://abrickshort.wordpress.com</link>
	<description>scribblings of a brick short</description>
	<lastBuildDate>Fri, 26 Oct 2007 15:22:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='abrickshort.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>A brick short</title>
		<link>https://abrickshort.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://abrickshort.wordpress.com/osd.xml" title="A brick short" />
	<atom:link rel='hub' href='https://abrickshort.wordpress.com/?pushpress=hub'/>
	<item>
		<title>F# on .NET</title>
		<link>https://abrickshort.wordpress.com/2007/10/25/f-on-net/</link>
					<comments>https://abrickshort.wordpress.com/2007/10/25/f-on-net/#respond</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Thu, 25 Oct 2007 18:25:44 +0000</pubDate>
				<category><![CDATA[Programming languages]]></category>
		<category><![CDATA[F# .NET OCaml funcional programming]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2007/10/25/f-on-net/</guid>

					<description><![CDATA[Back in January 2005, I was sitting in my very first lecture of my graduate program. The course was Programming languages and translators. The instructor was briefing us about the course content and the course&#8217;s goal was to learn about the design of programming languages. He mentioned that we&#8217;ll be using OCaml as the programming [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Back in January 2005, I was sitting in my very first lecture of my graduate program. The course was <em>Programming languages and translators</em>. The instructor was briefing us about the course content and the course&#8217;s goal was to learn about the design of programming languages. He mentioned that we&#8217;ll be using OCaml as the programming language course. Never heard of such programming language, ain&#8217;t u? I was little turned off when he said he would use OCaml because I thought I would learn how languages like Java could be designed etc. Immediately I questioned him (obviously how enthusiastic would I&#8217;ve been in my first class :P),  &#8220;Why  OCaml?  Why not languages we already know like Java?&#8221;.  He said OCaml is a functional language and more powerful, so he can explain more advanced topics which are not available in languages like Java.</p>
<p>He said when smalltalk was in research no one would&#8217;ve ever thought that the Object-Oriented Programming paradigm would become the future of programming. So he said all of us in that class could feel lucky one day that you took the initiative to learn the functional programming paradigm which could be future! Little did I believe that what my instructor could be anyway closer to reality in the future. I thought he was trying to sell the idea of using the language for the course.</p>
<p>But today I read an article that Microsoft is facilitating functional programming language F# (inspired by OCaml) on the .NET framework. I never imagined that functional programming could reach this stage and now we&#8217;ll never know what is in store!</p>
<p>Though I don&#8217;t remember much about OCaml now, I am happy that I was one of the early learners of functional programming paradigm which many haven&#8217;t heard of. But programming in OCaml is really tricky and programmers can easily make mistakes as simple change in the order of syntax could mean a totally different thing. Even a complex recursion could be written in a single line in OCaml.</p>
<p>Follow the below link for the article:</p>
<p><a href="http://arstechnica.com/news.ars/post/20071023-microsoft-to-push-functional-programming-into-the-mainstream-with-f.html" title="Microsoft to push functional programming into the mainstream with F#">Microsoft to push functional programming into the mainstream with F#</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2007/10/25/f-on-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>Global Warming!</title>
		<link>https://abrickshort.wordpress.com/2006/11/23/global-warming/</link>
					<comments>https://abrickshort.wordpress.com/2006/11/23/global-warming/#comments</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Thu, 23 Nov 2006 19:03:32 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2006/11/23/global-warming/</guid>

					<description><![CDATA[What has global warming got to do with a technical blog?! Umm.. it has got to do with us, the Software Engineers, read on.. I recently got to watch Al Gore&#8217;s movie on global warming &#8220;An Inconvenient Truth&#8221; and was very inspired by that. I was simply blown away by the statistics he provided in [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>What has global warming got to do with a technical blog?! Umm.. it has got to do with us, the Software Engineers, read on..</p>
<p>I recently got to watch Al Gore&#8217;s movie on global warming &#8220;An Inconvenient Truth&#8221; and was very inspired by that. I was simply blown away by the statistics he provided in the movie. Just to start with, what is global warming? I am putting it in simple words from what I understood from the movie. The Sun&#8217;s hot radiations that hit the Earth are reflected back to the outer space by the Earth&#8217;s surface as Infra-Red radiations. Part of those reflected radiations are held back by the Earth&#8217;s atmosphere which in turn aids in sustaining warmth in our planet. But when more CO2 is emitted from Earth, the atmosphere layer becomes more dense and holds back lot more IR rays which cause more warming in the Earth.</p>
<p>After watching the movie, I realized how the humans&#8217; energy consumption is leading to global warming. Thatz when I, a brick short,  realized and started turning off my laptop before I go to bed <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>So what has this got to do with this blog? I came across this article <a href="http://www.treehugger.com/files/2006/11/how_windows_xp.php" title="How Windows XP Wasted $25 Billion of Energy" target="_blank">How Windows XP Wasted $25 Billion of Energy</a>. The moment I read the title about wasting energy, first thing prompted to me is global warming, and yes it was relevant to global warming. The article talks about the power saving flaws in Windows XP and those have been overcome in Windows Vista which would save $5 billion yearly and prevent release of over 45 million tons of CO2 yearly!</p>
<p>I remember the days when the system administrators in my company, requested us to turn off the computers while leaving for the day to save energy! I had such a poor brain, which made me think it was just the company&#8217;s policy to save their electricity bills. I admit, without any shame, I left my computer turned on over the weekends too for almost 3 years during my work experience! Now I realize how much I have contributed to the global warming! <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f626.png" alt="😦" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>I know many of us don&#8217;t turn off our computers when we leave for the day. So I thought this blog would help me spread the word!</p>
<p><a href="http://digg.com/submit?phase=2&amp;url=https://abrickshort.wordpress.com/2006/11/23/global-warming/&amp;title=GlobalWarming" target="_blank"><img src="https://i0.wp.com/digg.com/img/badges/91x17-digg-button.gif" alt="Digg!" align="left" height="17" width="91" /><br />
</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2006/11/23/global-warming/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>

		<media:content url="http://digg.com/img/badges/91x17-digg-button.gif" medium="image">
			<media:title type="html">Digg!</media:title>
		</media:content>
	</item>
		<item>
		<title>What is an object?</title>
		<link>https://abrickshort.wordpress.com/2006/05/22/what-is-an-object/</link>
					<comments>https://abrickshort.wordpress.com/2006/05/22/what-is-an-object/#comments</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Mon, 22 May 2006 05:10:36 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2006/05/22/what-is-an-object/</guid>

					<description><![CDATA[Started reading Thinking in Java by Bruce Eckel and again stumbled over the term &#34;object&#34;. I have tried understanding this same term 5 years back when I was first introduced to object oriented programming through Java. But then I just understood it in a conceptual level good enough to write programs. Well, its a known [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Started reading Thinking in Java by Bruce Eckel and again stumbled over the term &quot;object&quot;. I have tried understanding this same term 5 years back when I was first introduced to object oriented programming through Java. But then I just understood it in a conceptual level good enough to write programs.</p>
<p>Well, its a known fact that the term &quot;object-oriented&quot; was introduced by Alan Kay as part of his SmallTalk. As we see in many books object is conceptually described as (in a functional level)</p>
<blockquote><p>An object has state, behavior and identity.</p></blockquote>
<p>.. as Bruce Eckel puts it. State &#8211; the internal data it holds, behavior &#8211; expressed by its methods, and identity &#8211; every object has a unique address in memory. Beyond this description, we also know its an instance of a class and class is a blueprint of an object.</p>
<p>But do these descriptions help us understand what is an object?! I wanted to find an answer for this and tried googling. I came across this blog by Jim Waldo, Sun&#39;s Lead Architect for Jini, where he <i><a href="http://www.artima.com/weblogs/viewpost.jsp?thread=85308">thinks about objects</a></i>.</p>
<p>After reading his blog I do have a better understanding, but it rises more questions than before. His blog basically puts forth the question.. is there a notion of object which is independent of the language in which one is programming?</p>
<p>He says, object is a way of abstracting information by joining the underlying state of the information with the code that manipulates the information ie., <b>a combination of data and code</b>. But then he says a more detailed description of the object depends on the way object is expressed in a particular programming language.</p>
<p>In that sense he puts object as a combination of state and a class descriptor, that points off to some code. And in case of Java, it is <b>a combination of state and a pointer to the class loader which loads the appropriate code</b>.</p>
<p>He also says an object  in one language is very different from object in another programming language and that is because of the different kinds of associations built between classes and types in different languages. These different ways impact the way the state and code are related in different programming languages.</p>
<p>Alright! enough of what Jim Waldo said, and what have I understood from that? I got to know a new (deeper level) description of an object. It is a combination of state and code. From this statement what I could infer is, when a class is instantiated, memory space is allocated wherein the internal data is stored and there is pointer to the code (of the methods). In this case every instance (object) has its own unique copy of the internal data and a new process is loaded in the memory for the code the pointer points to. Hence creating a unique instance of a class which is just a blueprint of the instance running.</p>
<p>Have I understood object completely?!!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2006/05/22/what-is-an-object/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>XML Encryption</title>
		<link>https://abrickshort.wordpress.com/2006/05/12/xml-encryption/</link>
					<comments>https://abrickshort.wordpress.com/2006/05/12/xml-encryption/#respond</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Fri, 12 May 2006 17:44:00 +0000</pubDate>
				<category><![CDATA[Web services security]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2006/05/12/xml-encryption/</guid>

					<description><![CDATA[XML Encryption allows hiding all or part of the XML document (confidentiality) from anyone other than the private key holder.XML encryption is implemented using shared key (symmetric) cryptography. In shared key cryptography, the data is encrypted and decrypted by the same key. The challenge lies in transporting the shared key to the recipient. This one [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>XML Encryption allows hiding all or part of the XML document (confidentiality) from anyone other than the private key holder.XML encryption is implemented using shared key (symmetric) cryptography. In shared key cryptography, the data is encrypted and decrypted by the same key. The challenge lies in transporting the shared key to the recipient. This one challenge in shared key cryptography, can simply makes its purpose meaningless. Because any intruder who receives the shared key and simply encrypt the message which is supposed to be confidential to the intended recipient. So the critical aspect is to secure the shared key itself.</p>
<p>This challenge is handled in XML encryption using public key (asymmetric) cryptography. The shared key is encrypted using the recipient&#39;s public key and sent to the recipient along with the encrypted data. Notice that both the data and key are encrypted, but both are encrypted using different keys. Data by shared key and key by recipient&#39;s public key. Hence the recipient will first decrypt the encrypted key using its private key and retrieve the shared key. Then it uses the shared key to decrypt the encrypted data.</p>
<p>Thus the shared key is transferred securely and the data&#39;s confidentiality is also maintained.</p>
<p>It is worth to discuss reg. the shared and public key cryptographies. In public key cryptography there is no need to distribute the encryption key. The public key of the recipient is published and the sender encrypts the data using the public key; and the private key to decrypt the message is possessed only by the recipient. But in public key cryptography, the encryption using public key and the decryption using the private key are much slower when compared to symmetric cryptography. This performance issue becomes more critical when the data is big. Hence it is a common practice to combine the advantages of both the cryptographies. The encryption and decryption is done using the shared key as in symmetric cryptography and the distribution of the shared key is done using public key cryptography. As only the shared key is processed using public key cryptography, the performance issue is neglible when compared to processing the whole data. This same concept is implemented in XML encryption.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2006/05/12/xml-encryption/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>Deciphering Monoalphabetic substitution cipher</title>
		<link>https://abrickshort.wordpress.com/2005/08/04/deciphering-monoalphabetic-substitution-cipher/</link>
					<comments>https://abrickshort.wordpress.com/2005/08/04/deciphering-monoalphabetic-substitution-cipher/#comments</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Thu, 04 Aug 2005 11:14:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/08/04/deciphering-monoalphabetic-substitution-cipher/</guid>

					<description><![CDATA[Monoalphabetic substitution cipher is a method of encryption where every letter of a plaintext is substituted with a corresponding ciphertext. Deciphering a monoalphabetic substitution cipher is an interesting process. Let us try deciphering the following ciphertext. QZX FDK WG OEBKGL KFEP E BFELS EKKEJS QZX BEU WQ CDJKXLG ZP KFG HEJSBKLGGKB HEJS EALDIFK EPY QZX [&#8230;]]]></description>
										<content:encoded><![CDATA[<p class="MsoNormal">Monoalphabetic substitution cipher is a method of encryption where every letter of a plaintext is substituted with a corresponding ciphertext.</p>
<p class="MsoNormal">Deciphering a monoalphabetic substitution cipher is an interesting process. Let us try deciphering the following ciphertext.</p>
<p class="MsoNormal">QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</p>
<p class="MsoNormal">QZX BEU WQ CDJKXLG</p>
<p class="MsoNormal">ZP KFG HEJSBKLGGKB HEJS EALDIFK</p>
<p class="MsoNormal">EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</p>
<p class="MsoNormal">HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</p>
<p class="MsoNormal">To differentiate between the plaintext and ciphertext, I am representing the former as all low case and the latter as all caps.</p>
<p class="MsoNormal">The first thing I would do in deciphering a monoalphabetic substitution is to use the frequency analysis to guess high frequency letters.</p>
<p class="MsoNormal">The alphabets&rsquo; frequency goes in this order in standard English,</p>
<p class="MsoNormal">E T A O I N S R H L D C U M F P G W Y B V K X J Q Z</p>
<p class="MsoNormal">with E having the highest and Z, the least frequency.</p>
<p class="MsoNormal"><b>Step 1: </b>So the first step is to count the occurrence of each letter in the enciphered text.</p>
<p class="MsoNormal">E-18     K-16     G-14     Z-9     L-8     Q-7     X-7     F-7     B-7     W-6     J-5     H-5     D-4     P-4     S-4     A-4     O-3     U-3     Y-3     C-2     I-1     R-1     M-1</p>
<p class="MsoNormal">E has the highest frequency, so it is likely to be &lsquo;e&rsquo; in the plaintext too.</p>
<p class="MsoNormal"><b>Step 2: </b>Next step is to look for single letter word in the ciphertext. Here it is E. Hence E should be either &#39;a&#39; or &#39;i&#39; and not &#39;e&#39; as per the frequency analysis.</p>
<p class="MsoNormal"><b>Step 3: </b>So the second highest frequency letter K is likely to be &#39;e&#39;. But while substituting it in the word EKKEJS &#8211; EeeEJS, with a quick glance there is no six letter English word of this format with same first and fourth letters and &#39;ee&#39; in between them. So K cannot be e.</p>
<p class="MsoNormal"><b>Step 4: </b>Now let us consider the third highest frequency letter G is likely to e. So let us try subsituting it in the ciphertext.</p>
<pre>e     e</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>e        ee</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>e e    e               e       e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>e   e              e</pre>
<pre>XK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal">All the substitutions look fine.</p>
<p class="MsoNormal"><b>Step 5: </b>Now let us look at the two letter words with e.</p>
<p class="MsoNormal">&#39;We&#39; occurs twice.  as, am, an, at, be, do, hi, if, my, is, in, it, me, us, on and we are the meaningful two letter words in English. For the list of all two letter English words follow this link: <a href="http://en.wikipedia.org/wiki/List_of_two-letter_English_words" target="_blank">http://en.wikipedia.org/wiki/List_of_two-letter_English_words</a></p>
<p class="MsoNormal">Pick out the words ending with &#39;e&#39;. They are be, me and we. So W could be either of &#39;b&#39;, &#39;m&#39; or &#39;w&#39;. Also not the word &#39;EW&#39;. It means &#39;W&#39; is the first letter of &#39;WG&#39; and second letter of &#39;EW&#39;. From the list of two letter words only &#39;i&#39; and &#39;m&#39; has that characteristic, ie., &#39;m&#39; is the last character of am and first character of me. Also as per &#39;WG&#39;, the word ends with &#39;e&#39;. So &#39;WG&#39; should be &#39;me&#39;. So let us subsitute &#39;m&#39; for &#39;W&#39;.</p>
<pre>me     e</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>m        e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>e        ee</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>e e m  e               e       e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>e  me  m        m  e</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 6: </b>Now let us look at the other two letter words made of &#39;m&#39;. One is &#39;WQ&#39; and we are sure that it starts with &#39;m&#39;. The only other two letter word that starts with &#39;m&#39; is my. So &#39;Q&#39; should be &#39;y&#39;. Other is &#39;EW&#39; and we are sure that it ends with &#39;m&#39;. The only two letter word that ends with &#39;m&#39; is am. So &#39;E&#39; should be &#39;a&#39;. Also remember as per step 2, E can be either &#39;a&#39; or &#39;i&#39; also makes sense in this case.  Let us substitute Q and E with &#39;y&#39; and &#39;a&#39;.</p>
<pre>y       me  a  e    a  a   a   a  a</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>y    a  my       e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>e  a     ee    a   a</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>a   y    e e m  e   a       a   e  y  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>y       e  me am       ama e   a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 7: </b>Now let us consider the word &#39;QZX&#39;, which after substitution is &#39;yZX&#39;. Pick out the three letter words starting with &#39;y&#39; in standard English. I could think of yes, yet and you. It cannot be yes and yet, because &#39;e&#39; is already substituted. So it should be you. For the list of all three letter English words follow this link: <a href="http://en.wikipedia.org/wiki/List_of_three-letter_English_words" target="_blank">http://en.wikipedia.org/wiki/List_of_three-letter_English_words</a>.  Let us substitute Z and X with &#39;o&#39; and &#39;u&#39; respectively.</p>
<pre>you     me  a  e    a  a   a   a  a</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you  a  my     u e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>o    e  a     ee    a   a</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>a   you  e e mo e   a   u   a   e  y  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>u   o  you  oo e  me am       ama e   a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 8: </b>Look at the word EWEMGY, after substitution &#39;amaMeY&#39;. Look for a six letter word starting with &#39;ama&#39; in the dictionary. Only &#39;amazed&#39; fits in. So let us substitute M and Y with &#39;z&#39; and &#39;d&#39; respectively.</p>
<pre>you     me  a  e    a  a   a   a  a</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you  a  my     u e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>o    e  a     ee    a   a</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>a d you  e e mo e   a   u   a   e  y  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>u   o  you  oo ed me am       amazed  a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 9: </b>Look at the word EPY, after subsitution &#39;aPd&#39;. Let us get some clue for the letter P. Look at the word ZP, after subsitution &#39;oP&#39;. There are only two two-letter words starting with &#39;o&#39; ie., on and or. So P should be either &#39;n&#39; or &#39;r&#39;. Substituting these with our earlier observation &#39;aPd&#39;, only &#39;and&#39; makes sense. So P should be &#39;n&#39;. Let us substitute P with &#39;n&#39;.</p>
<pre>you     me  a  e    an a   a   a  a</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you  a  my     u e</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>on   e  a     ee    a   a</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you  e e mo e   an  u   a   e  y  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>u    o you  oo ed me am       amazed  a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 10: </b>Look at the words KFEP and KFG, after substitution &#39;KFan&#39; and &#39;KFe&#39;. I could only think of than and the to match them. Let us substitute K and F with &#39;t&#39; and &#39;h&#39; respectively.</p>
<pre>you h t me  a te  than a  ha   atta
QZX FDK WG OEBKGL KFEP E BFELS EKKEJS
you  a  my    tu e
QZX BEU WQ CDJKXLG</pre>
<pre>on the  a   t eet   a   a    ht</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you  e e mo e than  u t a   etty  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>ut ho  you  oo ed me am  t    amazed  a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 11: </b>Look at the words OEBKGL and WZLG, after subsitution &#39;OaBteL&#39; and &#39;moLe&#39; respectively. They both are followed by than. So let us make them as comparative degree. They become &#39;OaBter&#39; and &#39;more&#39;. L should be &#39;r&#39; and that makes CLGKKQ &#8211; &#39;Cretty&#39; as pretty. Let us substitute L and C with &#39;r&#39; and &#39;p&#39; respectively.</p>
<pre>you h t me  a ter than a  har  atta</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you  a  my p  ture</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>on the  a   treet   a   a r  ht</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you  ere more than  u t a pretty  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>ut ho  you  oo ed me am  t    amazed  a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 12: </b>The word UGLG &#8211; &#39;Uere&#39; is preceded by you and followed by more than. It shoudl be were. Substitute U with &#39;w&#39;.</p>
<pre>you h t me  a ter than a  har  atta</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you  aw my p  ture</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>on the  a   treet   a   a r  ht</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you were more than  u t a pretty  a e</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>ut how you  oo ed me am  t    amazed  a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 13: </b>Now things will move pretty faster.. let us get into guess works!.. Few obvious guesses.. FDK &#8211; &#39;hDt&#39; becomes hit; OEBKGL &#8211; &#39;OaBter&#39; becomes faster; EKKEJS &#8211; &#39;attaJS&#39; becomes attack and BEU &#8211; &#39;Baw&#39; becomes saw. Let us substitute D, O, B, J, S and B with &#39;i&#39;,&#39;f&#39;,&#39;s&#39;,&#39;c&#39;,&#39;k&#39; and &#39;s&#39; respectively.</p>
<pre>you hit me faster than a shark attack</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you saw my picture</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>on the  ackstreets  ack a ri ht</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you were more than  ust a pretty  ace</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>ut how you  oo ed me am sti   amazed a y</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal"><b>Step 14: </b>Few more obvious guesses.. HEJSBKLGGKB &#8211; &#39;Hackstreets&#39; becomes backstreets; RXBK &#8211; &#39;Rust&#39; becomes just; OEJG &#8211; &#39;Oace&#39; becomes face; OZZAGY &#8211; &#39;fooAed&#39; becomes fooled; and EALDIFK &#8211; &#39;alriIht&#39; becomes alright. Substitute H, R, O, A and I with &#39;b&#39;, &#39;j&#39;, &#39;f&#39;, &#39;l&#39; and &#39;g&#39; respectively.</p>
<pre>you hit me faster than a shark attack</pre>
<pre>QZX FDK WG OEBKGL KFEP E BFELS EKKEJS</pre>
<pre>you saw my picture</pre>
<pre>QZX BEU WQ CDJKXLG</pre>
<pre>on the backstreets back alright</pre>
<pre>ZP KFG HEJSBKLGGKB HEJS EALDIFK</pre>
<pre>and you were more than just a pretty face</pre>
<pre>EPY QZX UGLG WZLG KFEP RXBK E CLGKKQ OEJG</pre>
<pre>but how you fooled me am still amazed baby</pre>
<pre>HXK FZU QZX OZZAGY WG EW BKDAA EWEMGY HEHQ</pre>
<p class="MsoNormal">Finally it deciphers to:</p>
<p class="MsoNormal">you hit me faster than a shark attack you saw my picture on the backstreets back alright and you were more than just a pretty face but how you fooled me am still amazed baby.</p>
<p class="MsoNormal"><b>Tips and tricks:</b></p>
<ol>
<li class="MsoNormal">Use frequency analysis &#8211; the order goes as.. e t a o i n s r h l      d c u m f p g w y b v k x j q z</li>
<li class="MsoNormal">First substitution is critical, so cross check the high frequency      letter with all possible word formations in the ciphertext, before substituting.</li>
<li class="MsoNormal">Look for single letter word &#8211; it should be either A or I.</li>
<li class="MsoNormal">Use frequency analysis for digraphs &#8211; the order goes as.. TH HE      IN ER ED AN ND AR RE EN ES TO NT EA OU NG ST AS RO AT</li>
<li class="MsoNormal">After every substitution, look for the clue from two letter and three      letter words.</li>
<li class="MsoNormal">Use the list of two letter and three letter words list in      wikipedia.</li>
<li class="MsoNormal">When the starting letters of a word are determined, look for the      words with the same starting letters and word length in the dictionary.</li>
<li class="MsoNormal">Once 50% complete, make quick guesses.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/08/04/deciphering-monoalphabetic-substitution-cipher/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>TUNES project</title>
		<link>https://abrickshort.wordpress.com/2005/07/04/tunes-project/</link>
					<comments>https://abrickshort.wordpress.com/2005/07/04/tunes-project/#respond</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Mon, 04 Jul 2005 13:15:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/07/04/tunes-project/</guid>

					<description><![CDATA[These days I had been surfing a lot and read any technical content that comes to my notice. This morning I was browsing for some interesting sites on operating systems and just happened to end up with this website. http://cliki.tunes.org/index TUNES is a recursive acronym for TUNES is a Useful, Nevertheless Expedient, System.Based on my [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>These days I had been surfing a lot and read any technical content that comes to my notice. This morning I was browsing for some interesting sites on operating systems and just happened to end up with this website. <a href="http://cliki.tunes.org/index">http://cliki.tunes.org/index</a></p>
<p>TUNES is a recursive acronym for <b>TUNES is a Useful, Nevertheless Expedient, System.</b>Based on my understanding of this project, their feeling is that there is a growing gap between the ever-growing hardware potential, and the slowly enhancing software realizations. Their ultimate goal is to rethink how computer systems should be to fill this gap. You can read more about this project <a href="http://tunes.org/tunes.html">here</a>.</p>
<p>What attracted me more about this site are their reviews on the existing systems and methodologies. These include operating systems, programming languages, virtual machines, user interface, methods of reflection and migration.</p>
<p>I was simply amazed by the list of existing operating systems and programming languages they have mentioned. I wonder that such a huge numbers of them exist. It was really an eye-opener to me. To my knowledge, I thought and could number some 6 operating systems and 15 programming languages.</p>
<p>I hope that these pages would be a good reading for anyone.<br />
Reviews on existing operating systems :<br />
<a href="http://cliki.tunes.org/Operating%20Systems">http://cliki.tunes.org/Operating%20Systems</a><br />
Reviews on existing programming languages :<br />
<a href="http://cliki.tunes.org/Programming%20Languages">http://cliki.tunes.org/Programming%20Languages</a></p>
<p>The above links are must see for those interested in operating systems and programming languages.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/07/04/tunes-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>How function calls work?</title>
		<link>https://abrickshort.wordpress.com/2005/04/10/how-function-calls-work/</link>
					<comments>https://abrickshort.wordpress.com/2005/04/10/how-function-calls-work/#comments</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Sun, 10 Apr 2005 17:24:00 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/04/10/how-function-calls-work/</guid>

					<description><![CDATA[This is the first time am peeking into low-level of programming. This topic is not part of my curriculum but had to explore this in order to understand few advanced features of functional programming language. I&#8217;ll detail about those features in my future blog. Function, is just a piece of code which can be referred [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This is the first time am peeking into low-level of programming. This topic is not part of my curriculum but had to explore this in order to understand few advanced features of functional programming language. I&#8217;ll detail about those features in my future blog.</p>
<p>Function, is just a piece of code which can be referred using a name. The computer stores the data of the function (such as arguments, local variables, return address etc.,) when a function is invoked and destroys them when the function returns. Similarly when a function calls other functions, the caller function returns only after all the callee functions are returned. We can infer a LIFO (last-in-first-out) scenario in this, ie., the function that is invoked last completes first and the one invoked first completes last. So the stack becomes an obvious choice for function calls implementation.</p>
<p>In the memory, the stack grows from the higher memory address to the lower memory addresses. So we have to visualize an inverted stack. Have look at the below diagram.</p>
<p><a href="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframe.jpg" title="Stack frame"><img src="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframe.thumbnail.jpg?w=455" alt="Stack frame" /></a><br />
Stack frame</p>
<p>Let me brief through all the terminologies before we get into the working.</p>
<p><strong>Stack frame</strong> &#8211; The section of memory where the local variables, arguments, return address and other information of a function are stored, is called stack frame or activation record.</p>
<p><strong>Stack pointer</strong> &#8211; For function calls, a bulk of data is pushed and popped from the memory, whenever a function is invoked and returned respectively. But we may need to access the data which is deep into the stack and it will be inefficient to pop off all the data to do that. Hence, unlike conventional stack implementation, we have a register called stack pointer that points to top of the stack such that all the addresses smaller than the address to which the stack pointer points are considered as garbage and all the address larger are considered as valid.</p>
<p><strong>Stack bottom</strong> &#8211; It is the highest valid address of the stack. When the  stack is initialized the stack pointer points to stack bottom.</p>
<p><strong>Stack limit</strong> &#8211; It is the smallest valid address of the stack. When the stack pointer goes below this address, then there&#8217;s stack overflow.</p>
<p><strong>Frame pointer</strong> &#8211; When a new function is invoked the frame pointer points to where the stack pointer was and when the function returns the stack pointer points back to where the frame pointer is.</p>
<p><strong>Return address</strong> &#8211; It points to address (within the caller function) to which the control should pass when the callee (current) function returns.</p>
<p><strong>Static link</strong> &#8211; This comes into picture for the programming languages that support nested functions. When a function (nested function) is defined within another function (enclosing function), the nested function may need to access the variables of the enclosing function. Therefore, the nested function&#8217;s stack frame should be able to access the enclosing function&#8217;s frame. This made possible by static link which points to the address of the enclosing function&#8217;s frame.</p>
<p><strong>How it works?</strong></p>
<p>The working of stack differs with different programming languages. Programming languages like C, doesn&#8217;t support nested functions and they dont need static link. Programming lanuages like Pascal support nested functions and they use static link. There are programming languages like ML and Scheme which support both nested functions and function-valued variables (ie., a function returned as a result of another function). I am not aware of how these function calls work. I have discussed the working only for programming languages that support nested functions.</p>
<p>Consider a pseudo-C code: (This doesn&#8217;t work in C. Just using a comfortable syntax.)</p>
<p>int foo (int arg1)<br />
{<br />
int f (int arg2)<br />
{<br />
int i=10;<br />
return arg2 * i;<br />
}<br />
int g(int arg3)<br />
{<br />
return f(arg3);<br />
}<br />
return g(arg1);<br />
}</p>
<p>f and g are nested functions of foo. foo invokes g which inturn invokes f.</p>
<p><a href="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframeworking2.jpg" title="Stack frame working"><img src="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframeworking2.thumbnail.jpg?w=455" alt="Stack frame working" /></a><br />
Stack frame &#8211; working<br />
When the function foo invokes function g, the argument arg3 is pushed into the stack. A new section memory is allocated for the function g and the stack pointer points to the highest unused address. The frame pointer points to where stack pointer was. The old frame pointer is pushed ie., 1. The static link which points to the address of the enclosing function foo is pushed, ie., 1. The return address is pushed ie., to foo.</p>
<p>Then when the function f is invoked the argument arg2 is pushed. Now the frame pointer points to where the stack pointer was. The old FP is pushed ie., 3. The static link pointing to foo is pushed ie., 1. The return address is pushed ie., to g. Then the local variable i is pushed.</p>
<p>When the function f returns. The stack pointer points to where stack pointer was and the frame pointer points to the address stored as old FP in f&#8217;s stack frame.</p>
<p>This simply doesn&#8217;t work with languages like ML and scheme because in those, the local variables should not be destroyed while the function returns! as they may be required for the nested callee function.</p>
<p><strong>How recursive functions work?</strong></p>
<p>The recursive functions work in same way as the other functions. For every recursive call a new stack frame of the function is created. But this avoided in tail recursive calls in functional languages. In tail recursive call, each recursive call is made to loop to the same stack frame.</p>
<p><strong>Stack overflow</strong></p>
<p>When the stack pointer goes below the stack limit, then there&#8217;s stack overflow. The most common cause for stack overflow is the infinite loop in the recursive function calls. Imagine if a function is invoked recursively for infinite times, a stack frame gets appended for every recursive call and at one point the stack pointer goes below the stack limit and thus a stack overflow is caused.</p>
<p><strong>References:</strong><br />
1. <a href="http://madchat.org/osdevl/stack.html">Understanding the stack</a>.<br />
2. Modern compiler implementation in ML by Andrew W. Appel</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/04/10/how-function-calls-work/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>

		<media:content url="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframe.thumbnail.jpg" medium="image">
			<media:title type="html">Stack frame</media:title>
		</media:content>

		<media:content url="https://abrickshort.wordpress.com/wp-content/uploads/2006/11/stackframeworking2.thumbnail.jpg" medium="image">
			<media:title type="html">Stack frame working</media:title>
		</media:content>
	</item>
		<item>
		<title>Abstract data types vs Data structures</title>
		<link>https://abrickshort.wordpress.com/2005/03/06/abstract-data-types-vs-data-structures/</link>
					<comments>https://abrickshort.wordpress.com/2005/03/06/abstract-data-types-vs-data-structures/#comments</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Sun, 06 Mar 2005 23:43:00 +0000</pubDate>
				<category><![CDATA[data structures]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/03/06/abstract-data-types-vs-data-structures/</guid>

					<description><![CDATA[C++ data structures is another course am learning this semester. This course is a pre-requisite for all non-Computer Science students. I have already learnt and implemented all the C++ data structures in a private course during my undergraduate studies, but not with the same understanding am learning them these days. Frankly I dont know much [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>C++ data structures is another course am learning this semester. This course is a pre-requisite for all non-Computer Science students. I have already learnt and implemented all the C++ data structures in a private course during my undergraduate studies, but not with the same understanding am learning them these days. Frankly I dont know much about data structures during my work experience. So I consider this course as an opportunity to get my hands on C++ again and implement various datastructures.</p>
<p>First thing I got to know is.. the difference between the abstract data types (ADT) and datastructures. Earlier I thought they are same.</p>
<p>Before starting that, we need to be clear about the logical and implementation level of data. Let us take an example of a simple built-in data type integer. At the logic level, we application programmers know only about what are the operations an integer data type can perform, ie., addition, subtraction etc., But we are no way aware of how the data type is actually implemented. At the implementation level, it is about how the data type integer is implemented in the machine level, ie., it could either of binary-coded decimal, unsigned binary, sign-and-magnitude binary, One&#39;s complement and Two&#39;s complement notation.</p>
<p>Now.. for the understanding the ADT and data structure, we need to assume a higher level abstraction where we have the built-in types at the implementation level.</p>
<p>To put it simple, ADT is a logical description and data structure is concrete. ADT is the logical picture of the data and the operations to manipulate the component elements of the data. Data structure is the actual representation of the data during the implementation and the algorithms to manipulate the data elements. ADT is in the logical level and data structure is in the implementation level.</p>
<p>As you can see, ADT is implementation independent. For example, it only describes what a data type List consists (data) and what are the operations it can perform, but it has no information about how the List is actually implemented.</p>
<p>Whereas data structure is implementation dependent, as in the same example, it is about how the List implemented ie., using array or linked list. Ultimately, data structure is how we implement the data in an abstract data type.</p>
<p>This is something new of what I have learnt.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/03/06/abstract-data-types-vs-data-structures/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>got to know.. &#8216;Leda&#8217;</title>
		<link>https://abrickshort.wordpress.com/2005/03/01/got-to-know-leda/</link>
					<comments>https://abrickshort.wordpress.com/2005/03/01/got-to-know-leda/#respond</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Tue, 01 Mar 2005 16:43:00 +0000</pubDate>
				<category><![CDATA[Programming languages]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/03/01/got-to-know-leda/</guid>

					<description><![CDATA[I just came across a new programming language called Leda when I was reading the book &#39;Thinking in C++&#39; by Bruce Eckel. What is so unique about Leda is, it is a multiparadigm programming language. Multiparadigm, I mean, has all the paradigms of programming languages implemented in it ie., imperative, object-oriented, functional and logic! As [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I just came across a new programming language called Leda when I was reading the book &#39;Thinking in C++&#39; by Bruce Eckel. What is so unique about Leda is, it is a multiparadigm programming language. Multiparadigm, I mean, has all the paradigms of programming languages implemented in it ie., imperative, object-oriented, functional and logic!</p>
<p>As we all know that these abtraction of programming languages were basically to address the problem needs to be solved by the computer. As in imperative languages the problem space and solution space were different, so it became tedious for a programmer to map the spaces with each other. And then came the better abstraction, object-oriented programming. Here the problem space and solution space looked similar! like.. all were treated as objects ie., the abstraction was catered in a way that it fits the real world. Later we had functional and logic paradigms which had their own conceptualization of the real world ie., as &#39;lists&#39; in LISP and &#39;algorithms&#39; in Prolog. So there came a point that every paradigm best suits only for the particular kind of problem that it was catered for.</p>
<p>So Leda was designed to have all the paradigms in one language and the programmer can chose the paradigm based on which will best suit his problem to be solved. It was founded by Timothy Budd. There is a book named &#39;Multiparadigm Programming in Leda&#39; authored by the founder himself. I tried finding a free soft copy of this book to learn more but in vain. But I got a research paper on this topic from my univ&#39;s &#39;Adaptive Systems and Languages group&#39;. Will post more when I get time to read that paper.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/03/01/got-to-know-leda/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
		<item>
		<title>Paradigms of languages</title>
		<link>https://abrickshort.wordpress.com/2005/01/20/paradigms-of-languages/</link>
					<comments>https://abrickshort.wordpress.com/2005/01/20/paradigms-of-languages/#respond</comments>
		
		<dc:creator><![CDATA[Vignesh M.P.N.]]></dc:creator>
		<pubDate>Thu, 20 Jan 2005 19:29:00 +0000</pubDate>
				<category><![CDATA[Programming languages]]></category>
		<guid isPermaLink="false">http://abrickshort.wordpress.com/2005/01/20/paradigms-of-languages/</guid>

					<description><![CDATA[In the first lecture, I learnt about the different paradigms of prg. languages. This is not new to us but generally we classify them as low-level, structural and object oriented languages, and what I learnt is a way forward. Have a look at it. The taxonomy is provided based on the nature of program and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In the first lecture, I learnt about the different paradigms of prg. languages. This is not new to us but generally we classify them as low-level, structural and object oriented languages, and what I learnt is a way forward. Have a look at it.</p>
<p>The taxonomy is provided based on the nature of program and data in these paradigms. The taxonomy is based on my instructor, Dr. Mattox A. Beckman&#39;s views.</p>
<p>1. Low level languages<br />
Program : series of control signals for a CPU.<br />
Data : integers, memory address, IEEE floating point.<br />
eg: Assembly languages and microcode</p>
<p>2. Imperative languages<br />
Program : list of commands to be executed.<br />
Data : low level types (integers) and composite types (records and arrays)<br />
eg: C, BASIC, Fortran, Forth and Pascal.</p>
<blockquote><p>Fortran is still the best language to do intensive mathematic calculations. It has advantages over Matlab.</p></blockquote>
<p>3. Data encapsulation languages<br />
Program : list of commands to be executed.<br />
Data : low level types (integers), composite types and we can hide details from the user.<br />
eg:  Clu, Modula 2, Ada</p>
<p>4. Object oriented languages<br />
Program : message between objects<br />
Data : object (functions with state)<br />
eg: Smalltalk, Java, C++</p>
<blockquote><p>C++ and Java were actually inspired by Smalltalk which should have been the web language, &#8211; what Java has become. But they didn&#39;t see the opportunity at the right time.</p></blockquote>
<p>5. Functional languages<br />
Program : an expression to evaluate.<br />
Data : low level types and higher order types (the functions)<br />
eg: LISP, Scheme, ML</p>
<p>6. Logic programming languages<br />
Program : a logical predicate to satisfy.<br />
Data : set of assertions about what we know to be true.<br />
eg: Prolog</p>
<p>So from this taxonomy am already introduced to four of the paradigms. I learnt BASIC during my schooling days and have done few coding in assembly level language during my undergraduate studies. I have also learnt C and C++ in a private course. Then I learnt and worked in Java during my work experience.</p>
<p>Still there are two more paradigms unexplored and I&#39;ll learn them in this course (functional and logic programming languages). Hope that should provide me with the well-rounded understanding of the different paradigms, I strive for.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abrickshort.wordpress.com/2005/01/20/paradigms-of-languages/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/30c5c0f27c02589f540a1b144f367e1f465660b537f36a71920386cc2f107b57?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Vignesh M.P.N.</media:title>
		</media:content>
	</item>
	</channel>
</rss>
