{"id":696,"date":"2010-04-16T23:59:19","date_gmt":"2010-04-16T21:59:19","guid":{"rendered":"https:\/\/foton.no-ip.com\/BLOG\/?p=696"},"modified":"2010-04-17T00:33:40","modified_gmt":"2010-04-16T22:33:40","slug":"d","status":"publish","type":"post","link":"https:\/\/foton.szikraistvan.hu\/blog\/?p=696","title":{"rendered":"D"},"content":{"rendered":"<p>Ma egy \u00faj program nyelvvel ismerkedtem meg: D<br \/>\n\u00c9ppen egy genetikai mintailleszt\u00e9sen (short-read) gondolkodtam. Rendez\u00e9si, indexel\u00e9si algoritmusokat olvasgattam a neten, amikor egy in-place radix sort algorithm k\u00e9rd\u00e9sbe futottam bele, ahol egy D mintak\u00f3dot l\u00e1ttam, \u00e9s felkeltette az \u00e9rdekl\u0151d\u00e9semet. Ahogy olvastam a nyelv le\u00edr\u00e1s\u00e1t, \u00f6sszehasonl\u00edt\u00e1sokat C++-szal, \u00fajra el\u0151j\u00f6ttek a k\u00fcl\u00f6nb\u00f6z\u0151 programoz\u00e1si nyelvekr\u0151l alkotott gondolataim.<br \/>\nAz \u00e9vek sor\u00e1n el\u00e9g sok programoz\u00e1si nyelvvel tal\u00e1lkoztam: asm, asp, basic, bapc, c, c++, c#, clipper, delphi, java, js, pascal, perl, php, vbs, \u00e9s ami most nem jut eszembe. Persze nem mindben programozok napi szinten, de \u00edrtam benn\u00fck m\u0171k\u00f6d\u0151 programot. Az els\u0151 a basic volt m\u00e9g C64-en \ud83d\ude42 Persze ezeken k\u00edv\u00fcl l\u00e1ttam vagy hallottam m\u00e9g egy\u00e9b programnyelvekr\u0151l is (ada, cobol, fortran, python).<br \/>\nMinden nyelvnek megvannak az el\u0151nyei h\u00e1tr\u00e1nyai. A delphiben im\u00e1dom a <strong>string<\/strong> kezel\u00e9st. Szeintem ez a legnagyobb el\u0151nye a c-vel szemben. Egyszer\u0171 kezelni, hat\u00e9kony, m\u00e1solhat\u00f3, \u00f6sszef\u0151zhet\u0151, gyors (referencia sz\u00e1ml\u00e1lt), nem kell bajl\u00f3dni a mem\u00f3ria kezel\u00e9ssel. A c programok jelent\u0151s r\u00e9sz\u00e9ben a hib\u00e1k, biztons\u00e1gi r\u00e9sek oka a helytelen mem\u00f3ria kezel\u00e9s, string m\u0171veletek. Amikor egy f\u00fcggv\u00e9ny t\u00f6bb karaktert \u00edr a visszat\u00e9r\u00e9si bufferbe, mint annak a m\u00e9rete, l\u00e1sd scanf, gets, wchat konverzi\u00f3.<br \/>\nA m\u00e1sik amit szeretek a delphiben a f\u00fcggv\u00e9ny param\u00e9terek kezel\u00e9se: \u00e9rt\u00e9k szerinti, const ill. var referencia szerinti \u00e1tad\u00e1s. Tiszta, j\u00f3l l\u00e1that\u00f3, k\u00f6nnyen m\u00f3dos\u00edthat\u00f3. Kir\u00e1z a hideg, amikor a c pointer v\u00e1ltoz\u00f3 \u00e1tad\u00e1saira gondolok, \u00e9s hogy milyen k\u00f6nny\u0171 hib\u00e1s k\u00f3dot irni. A c++ referencia param\u00e9teri m\u00e1r sokkal jobbak.<br \/>\nA Delphiben az er\u0151s t\u00edpusoss\u00e1g is j\u00f3l j\u00f6n id\u0151nk\u00e9nt, megk\u00f6nny\u00edti a v\u00e9letlen hib\u00e1k kisz\u0171r\u00e9s\u00e9t, programoz\u00e1st az IDE-ben.<br \/>\nEgy m\u00e1sik dolog ami el\u00e9g megt\u00e9veszt\u0151 tud lenni c-ben, az a pointer n\u00f6vel\u00e9s \u00e9s t\u00f6mb indexel\u00e9s: int32 a[5]; a[3] == *(a+3), word hi=*(word*)(a+2), hi=*(word*)((int)a+2), hi=*(word*)((char*)a+2) &#8230; \u00e9n egy konstans eltol\u00e1st\u00f3l naivan egy mov word ptr [dx+2]-t v\u00e1rn\u00e9k, egy indexel\u00e9st\u0151l pedig mov word ptr [dx+idx*sizeof]-ot, de a c szerint az eltol\u00e1s is t\u00edpusf\u00fcgg\u0151 indexel\u00e9s&#8230;<br \/>\nA C#-ban a using blokk hasznos a biztons\u00e1gos er\u0151forr\u00e1s felszabad\u00edt\u00e1shoz.<br \/>\nNa m\u00e1ra ennyi el\u00e9g&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ma egy \u00faj program nyelvvel ismerkedtem meg: D \u00c9ppen egy genetikai mintailleszt\u00e9sen (short-read) gondolkodtam. Rendez\u00e9si, indexel\u00e9si algoritmusokat olvasgattam a neten, amikor egy in-place radix sort algorithm k\u00e9rd\u00e9sbe futottam bele, ahol egy D mintak\u00f3dot l\u00e1ttam, \u00e9s felkeltette az \u00e9rdekl\u0151d\u00e9semet. Ahogy olvastam &hellip; <a href=\"https:\/\/foton.szikraistvan.hu\/blog\/?p=696\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[32],"tags":[71,70],"class_list":["post-696","post","type-post","status-publish","format-standard","hentry","category-cooding","tag-develop","tag-programozas"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/s3E7AZ-d","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/posts\/696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=696"}],"version-history":[{"count":5,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/posts\/696\/revisions"}],"predecessor-version":[{"id":698,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=\/wp\/v2\/posts\/696\/revisions\/698"}],"wp:attachment":[{"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/foton.szikraistvan.hu\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}