.    

POZOR! Tento článek byl naposledy aktualizován před více než dvěma lety!

Je možné, že následující­ stránka obsahuje odkazy, které dnes již nejsou funkční, nebo že některé informace uvedené v tomto článku se v průběhu času ukázaly jako prokazatelně chybné. Pokud jakoukoliv podobnou závadu zjistíte, tak neváhejte napsat co nejpřesnější popis závady do veřejného komentáře pod článkem: redakce TečkyCZ nové komentáře neustále sleduje, a to i pod těmi nejstaršími články. V celé řadě případů lze chyby snadno opravit - např. se stává, že video na YouTube bylo smazáno a znovu nahráno pod jiným id. V jiných případech někdo zase zakáže embedovaní videa, která přitom existuje ve více kopiích, nebo se z webu ztratí stránka umístěná na negarantovaném freehostingu, zatímco původní autor stránek si mezitím zaregistruje vlastní doménu, atd.

Děkujeme všem, kteří pomáhají opravovat chyby ve starších webových stránkách a udržují tak Internet naživu - redakce TečkyCZ.


V linuxovém kernelu se 44878x vyskytuje příkaz goto

xChaos 2. února 2009 [3644 znaků] [Linux a internet]
★★ [ + ] 2 [2x] [ - ]
Zobrazení 3838 ← RSS 275 Facebook 5 Twitter 18 Google 15
Komentářů 1

Už dlouho jsem nepsal nic o programování, Linuxu a Internetu, takže je čas to napravit. Vzpomínáte na fanatické bojovníky proti příkazu goto, kteří ovládali akademickou půdu v 80. letech 20. století ?
Spousta lidí umí programovat v C, nebo v jazycích, které jsou velmi zhruba odvozeny od původní C syntaxe (C++, PHP, Perl, Javascript, Java ...) - a jedním z největších open source projektů napsaných v jazyce C je bezpochyby linuxový kernel.

Podívejme se tedy na četnost výskytu jednotlivých C identifikátorů [teckacz.arachne.cz] ve verzi 2.6.28.2 zdojáku linuxového kernelu.

Četnost výskytu příkazu goto asi nepřekvapí, pokud si uvědomíme, že v čistém C neexistuje dnes už poměrně běžná konstrukce typu try ~ catch/except pro systematické ošetření vyjímek. Na druhou stranu - toto zjištění jistě pobaví všechny, kdo v rané fázi svého programátorského vývoje úpěli pod jhem akademických dogmatiků konce 80. let 20. století, kteří prosazovali místo C programovací jazyk Pascal (kde je mu dnes konec ? :-) a příkaz goto pokládali za největší zlo - a to ještě ani neznali flow-control příkaz comefrom [en.wikipedia.org] :-)

Tento statistický výcuc byl vygenerován krátkým prográmkem v Pythonu [dev.arachne.cz], který vznikl jako součást chystané sady benchmarků [dev.arachne.cz] pro můj v současné době asi nejvážněji míněný projekt C<<1 [dev.arachne.cz], o kterém bych se tady brzy rád rozepsal více - některé zajímavé features fungují už teď, a projekt by měl být plnohodnotnou alternativou k C++ - programy napsané v C<<1 půjde přeložit v jakémkoliv plně ANSI C99 [en.wikipedia.org] kompatibilním compileru (tedy samozřejmě i v dnes asi nejrozšířenějším GCC - GNU C compileru) a spustit na jakékoliv POSIX kompatibilní platformě (tedy dnes obvykle Linux a FreeBSD). Jazyk C<<1 přitom má už v současné verzi vlastní polymorfní objektový model (pojatý nikoliv stylem "všechno je objekt", ale pouze jako volitelné rozšíření, nadstavbu) a implementuje řadu moderních postupů a nástrojů, které v klasickém C zoufale chybí - námatkou třeba systém ošetření vyjímek (try { }), nástroje pro jednoduchou práci s kontejnerovými datovými strukturami a nabídne jak spoustu nových flow control maker typu iterátory, tak i bezpečné prostředky pro jednoduchou práci se stringy. Ale více se dozvíte v samostatném článku, který o svém projektu chystám.

Další samostatný článek chystám na téma Python [xkcd.com] - což je velice soudobý, velice jednoduchý a velice intuitivní programovací jazyk, který dnes pokládám za asi nejvhodnější jazyk pro úplné programátorské začátečníky. Jakkoliv výkon aplikací je pak samozřejmě nižší, než u rozumně optimalizovaného kódu napsaného v C - Python dost brzdí přístup "všechno je objekt", který má značnou režii - tak pořád je Python daleko elegantnější, než monstrozity typu PHP, které už napáchaly v posledních letech opravdu hodně škod. A zjistil jsem, že výrokem "Python je můj oblíbený dialekt Basicu" dokážu naštvat opravdu hodně lidí :-) Ovšem posledním mě známým předchozím vážně míněným programovacím jazykem, ve kterém hrál whitespace syntaktickou roli byl - Fortran.

Takže se v nejbližší době můžete těšit minimálně na dvě (až tři) docela hutné programátorské kontroverze (projekt C<<1, samozřejmě Python a možná ještě něco o specifikaci C99). Zabíjení času flamewary na NYXu mě už přestává bavit, je čas na "masovou" osvětu...


Sloupcová sazba: pokud je okno prohlížeče dostatečně velké (na monitoru s dostatečným rozlišením), zobrazí se článek ve více sloupcích (w3.org). Testováno v browserech Firefox, Opera a Chrome. Není implementováno v Internet Exploreru. Tato feature může způsobovat problémy ve starších verzích prohlížečů s jádrem Webkit (Google Chrome, Safari, Konqueror). Pokud nevidíte článek celý, zkuste zmenšit okno prohlížeče nebo použít verzi pro tisk. [zpět na začátek sloupcové sazby]
Pokud se vám článek líbil, zkuste autora podpořit [zobrazit možnosti]
Sdílet v síti [Identi.ca - musíte být předem přihlášeni] [Twitter] [Facebook] [Jagg.cz]
Formátovat pro tisk [bez komentářů] [s komentáři]
Krátká forma URL (adresy) [http://teckacz.cz/822]
Všechny články [od autora xChaos] [v rubrice Linux a internet] [nejnovější]

Hodnocení článku čtenáři [ + ] 2 [2x] [ - ]
Tip: Pro moderaci článků (kladné nebo záporné hodnocení) je nutné použít browser, který podporuje javascript a cookies.
Komentáře čtenářů
Skrýt hodnocené nebo méně


[] fikus (anonym) 2. února 2009 ← komentářů 583 ☯☯ 78 [166x]
[ + ] 0 [0x] [ - ] ← pro ohodnocení komentáře se není nutné nikde registrovat
→ [/-/11673] ← na komentář můžete odpovědět nebo ho sdílet
jenom maly dodatek k tomu goto z http://www.xml.com/ldd/chapter/book/ch02.html

cituji:
Error recovery is sometimes best handled with the goto statement. We normally hate to use goto, but in our opinion this is one situation (well, the only situation) where it is useful. In the kernel, goto is often used as shown here to deal with errors.
 

Počet zobrazených komentářů: 1 [celkový čas potřebný k prohledání databáze a vytvoření stránky: 0.38 sekund]

Pozor, vložením komentáře souhlasíte s pravidly hry TečkyCZ! [zobrazit pravidla] →
Ochrana proti spambotům - tři-krát-tři je ... ? (napište číslicí - nemělo by byt potřeba při zapnutém JavaScriptu)
Sociální síť (přihlaste se předem, 1. řádek<=96 znaků=status, zbytek=odkaz)
Offtopic resolver (týká se odpověď původního tématu, nebo patří jinam?)
Přezdívka (povinně) - nepoužívejte speciální znaky, mezery=podtržítka
E-mail (volitelně) - nebude zobrazen, zobrazí se ikonka z [www.gravatar.com]

Nelze použít HTML [zobrazit mikrosyntax] →

Nápověda: ve vlastním zájmu uvádějte u komentářů pouze funkční a dostupnou e-mailovou adresu. Přezdívku, která je jednou spojená s konkrétní e-mailovou adresou, už nyní nelze bez zásahu administrátora serveru spojit s jinou adresou. Uvedením neplatné e-mailové adresy si v budoucnu znemožníte upload ikonky i možnost použít některé další chystané neanonymní funkce vázané na uvedení platné e-mailové adresy.


TečkaCZ [Nejnovější články] [Nejnovější komentáře] [Zeď vzkazů] [Zeď odkazů] [Začátek článku]

    TečkaCZ
  •  
  • Komentáře →
  • Nástěnky →
  • Debaty →
  • Články →
  • Ročníky →
  • Rubriky →
  • RSS kanály →
  • Vzhled →
  • Ostatní →
  •  
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
  •  
.

[Arachne Labs]

[SPOJE.NET]

[Právě dnes | Tech | Ostatní]

Yacy P2P web search jabber.arachne.cz
tiskové zprávy a otevřené dopisy přebíráme z nejrůznějších informačních kanálů (i bez výslovného souhlasu autorů)
licenční práva k použitým obrázkům a grafickým motivům nejsou definována (přebírejte pouze texty bez obrázků)
texty článků i komentáře bez uvedení copyrightu jsou chráněny GNU Free Documentation License
založeno na Quzo engine, (G)1999-2002 David Čermák, (G)2002-2012 Michael Polák
Quzo engine vyvíjejí Arachne Labs, webhosting sponzorují SPOJE.NET
seznam aktuálních článků je dostupný i ve formátu RSS (XML)
můžete také sledovat Twitter feed TečkyCZ.
test XHTML a CSS2 validity