A programozási idióma bizonyos összetett szerkezetek egy vagy több programozási nyelven történő kifejezésének stabil módja . Az idióma egy problémamegoldási minta, egy algoritmus vagy adatstruktúra írása a beépített nyelvi elemek kombinálásával.
Az idióma tekinthető a legalacsonyabb szintű tervezési mintának , amelyet a tervezés és a kódolás metszéspontjában alkalmaznak egy programozási nyelvben. Az idióma meghatározott módot ír elő bizonyos részletek és a köztük lévő kapcsolatok megvalósítására egy adott nyelv eszközeivel. Az idiómák halmaza a programozási nyelvtől függ, és ugyanaz az idióma két különböző nyelven eltérően nézhet ki, vagy az egyikben nincs is rá szükség [1] .
Az idióma lehet egy nyelvben egy szemantikailag eltérő nyelv elemeinek reprodukciója, amelyek ebben a nyelvben is alkalmazhatók, de nem maga a nyelv váltja ki őket (azaz nem szerepelnek az idiómái között). Ebből a szempontból az objektum-orientált tervezés számos mintáját funkcionális nyelvek elemeinek idiomatikus reprodukciójaként tekintik [2] [3] .
Az olyan nyelvekben, mint a BASIC , a változó értékének eggyel növelésének idióma a következő:
i = i + 1Rövidített változat C-szerű nyelveken:
i += 1 ; /* i = i + 1; */ ++ i ; /* ugyanaz az eredmény */ i ++ ; /* ugyanaz az eredmény */A Pascal hasonló hozzárendelési eljárást tartalmaz:
i := i + 1 ; Inc ( i ) ; (*ugyanaz az eredmény*)A legtöbb nyelven a két változó közötti értékcsere így néz ki:
hőmérséklet = a ; a = b _ b = hőmérséklet ;Perlben ez elegánsabbnak tűnik:
( $a , $b ) = ( $b , $a );Pascal :
míg true do begin do_something () ; vége ;A C-szerű nyelvekben számos módja van a végtelen ciklusok szervezésének, de a következő példa mutatja ezt a legkézenfekvőbb módon:
mert (;;) { csinál_valamit (); }A Perl támogatja a C szintaxist és más változatokat is:
do_something () while ( 1 ); # lerövidített végtelen ciklus while ( 1 ) { do_something () }; # hasonló # Egy "csupasz blokk" és a redo operátor használata { do_something (); újra ; }Ada :
ciklus csinál_valamit ; end - loop ;Python :
míg igaz : do_something ()Sok nyelvnek van egy asszociatív tömb megvalósítása , az ún. hash tábla .
Az asszociatív tömb megvalósítása Perlben :
saját %elemek = térkép { $_ => 1 } @elemek ;A Learn Ruby The Hard Way című könyv szerzője, Zed Shaw megjegyzi, hogy a fejlesztői közösségekben az idiómákkal kapcsolatos attitűd azt sugallja, hogy az idiómák használatát az erkölcsök közé kell sorolni , mivel természetes nyelven írva, amely egyértelmű megjelenítést igényel, az idiómákat kell használni. kerülni kell [4 ] . A következő példát hozza a Ruby Styleguide-ból [5] :
arr = [ 1 , 2 , 3 ] # bad for elem in arr do puts elem end #jó arr . mindegyik { | elem | elemet tesz }A for ciklus használata a hivatalos Ruby stílus szerint elavult, és a .each. Shaw álláspontja az, hogy a programozási nyelvek hallgatóinak nem csak egy adott programozási nyelv idiómáit, hanem alternatív kódolási módokat is meg kell tanulniuk – ez elkerüli az indoktrinációt és megkönnyíti az átállást más nyelvekre.