<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="https://jacek.zlydach.pl/blog/tags/goto-feed.xml" rel="self" type="application/rss+xml"/>
    <title>Posts tagged: goto - Jacek Złydach - blog</title>
    <link>https://jacek.zlydach.pl/blog/tags/goto.html</link>
    <lastBuildDate>Tue, 25 Jan 2022 12:54:25 +0100</lastBuildDate>
    <description>Blog of Jacek Złydach - a programmer and science enthusiast.</description>
    <generator>Regenerate2</generator>
    <managingEditor>temporal.pl@gmail.com (Jacek Złydach)</managingEditor>
    <webMaster>temporal.pl@gmail.com (Jacek Złydach)</webMaster>
    <ttl>1440</ttl>
    <copyright>© 2017, 2018, 2019, 2020, 2021, 2022, Jacek Złydach</copyright>
    <item>
      <title>GoTo - ciekawostka</title>
      <link>https://jacek.zlydach.pl/blog/2009-11-14-goto-ciekawostka.html</link>
      <guid isPermaLink="true">https://jacek.zlydach.pl/blog/2009-11-14-goto-ciekawostka.html</guid>
      <pubDate>Sat, 14 Nov 2009 01:08:03 +0100</pubDate>
      <category domain="https://jacek.zlydach.pl/blog/tags/old-blog.html">Old blog</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/java.html">Java</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/goto.html">goto</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/fortran.html">FORTRAN</category>
      <description><![CDATA[<em><strong>goto</strong></em> - chyba najbardziej kontrowersyjna konstrukcja programistyczna na świecie. Od czasu <a href="http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF">słynnego listu Dijkstry</a> instrukcja ta wzbudza wiele <a href="http://xion.org.pl/2008/06/24/bo-to-zla-instrukcja-byla/">kontrowersji</a> i sprzecznych opinii. Panuje więc przekonanie, że <a href="http://xkcd.com/292/">instrukcja ta jest zła i nie należy jej stosować</a>. Szanujące się profesjonalne języki wysokiego poziomu takie jak Java<a name="POST_GOTO_MT_1" href="blog/2009-11-14-goto-ciekawostka.html#POST_GOTO_REF_1">*</a> nawet nie posiadają takiej konstrukcji. Right?...

Wrong.
Wiadomo, że słowo <em>goto</em> jest w Javie zarezerwowane i nie może być użyte przez programistę. Na poziomie języka programowania nie ma dostępu do tej instrukcji, jednak jest ona dostępna bezpośrednio z poziomu <a href="http://en.wikipedia.org/wiki/Java_bytecode">bytecode'u</a>. Fakt ten został w ciekawy sposób wykorzystany przez programistów projektu <a href="http://icl.cs.utk.edu/f2j/overview/index.html">f2j</a> mającego na celu przetłumaczyć biblioteki FORTRANa na Javę.

FORTRAN jest językiem, w którym korzystanie z <em>goto</em> było na porządku dziennym. Brak omawianego mechanizmu w Javie stanowił poważne utrudnienie przy tłumaczeniu kodu FORTRANa na Javę. Programiści wymyślili więc bardzo sprytny sposób - generując kod Javy wstawiali w miejsce <em>goto</em> instrukcje zastępcze, które po skompilowaniu były na poziomie bytecode'u zamieniane na prawdziwe wywołania &quot;złowrogiej instrukcji&quot;. Swoje wysiłki <a href="http://icl.cs.utk.edu/news_pub/submissions/f2jreport.pdf">opisali w ciekawej publikacji</a>.

<a name="POST_GOTO_REF_1" href="blog/2009-11-14-goto-ciekawostka.html#POST_GOTO_MT_1">*</a> - Czytelnik słusznie dostrzeże tu nutkę sarkazmu.
]]></description>
    </item>
  </channel>
</rss>