▁ ▁function . ▁ ▁For ▁implementations ▁of ▁programming ▁languages ▁that ▁are ▁using ▁a ▁compiler , ▁ident ifiers ▁are ▁often ▁only ▁compile ▁time ▁entities . ▁That ▁is , ▁at ▁runtime ▁the ▁compiled ▁program ▁contains ▁references ▁to ▁memory ▁addresses ▁and ▁off sets ▁rather ▁than ▁the ▁text ual ▁identifier ▁tokens ▁( th ese ▁memory ▁addresses , ▁or ▁off sets , ▁having ▁been ▁assigned ▁by ▁the ▁compiler ▁to ▁each ▁identifier ). ▁ ▁In ▁languages ▁that ▁support ▁reflection , ▁such ▁as ▁interactive ▁evaluation ▁of ▁source ▁code ▁( using ▁an ▁interpreter ▁or ▁an ▁increment al ▁compiler ), ▁ident ifiers ▁are ▁also ▁runtime ▁entities , ▁sometimes ▁even ▁as ▁first - class ▁objects ▁that ▁can ▁be ▁freely ▁manip ulated ▁and ▁evaluated . ▁In ▁L isp , ▁these ▁are ▁called ▁symbols . ▁ ▁Comp ilers ▁and ▁interpre ters ▁do ▁not ▁usually ▁assign ▁any ▁semantic ▁meaning ▁to ▁an ▁identifier ▁based ▁on ▁the ▁actual ▁character ▁sequence ▁used . ▁However , ▁there ▁are ▁exceptions . ▁ ▁For ▁example : ▁ ▁In ▁Perl ▁a ▁variable ▁is ▁indicated ▁using ▁a ▁prefix ▁called ▁a ▁sig il , ▁which ▁spec ifies ▁aspects ▁of ▁how ▁the ▁variable ▁is ▁interpreted ▁in ▁expressions . ▁ ▁In ▁Ruby ▁a ▁variable ▁is ▁automatically ▁considered ▁imm utable ▁if ▁its ▁identifier ▁starts ▁with ▁a ▁capital ▁letter . ▁ ▁In ▁Fort ran , ▁the ▁first ▁letter ▁in ▁a ▁variable ' s ▁name ▁indicates ▁whether ▁by ▁default ▁it ▁is ▁created ▁as ▁an ▁integer ▁or ▁floating ▁point ▁variable . ▁ ▁In ▁Go , ▁the ▁capital ization ▁of ▁the ▁first ▁letter ▁of ▁a ▁variable ' s ▁name ▁determ ines ▁its