Languages such as C (WinAVR, ImageCraft, others) have means to place constant data in flash of the AVR. Since it has a separate address space for flash than RAM, and since flash is addressed in 16 bit words, not bytes, it's a bit tricky. In WinAVR (used with Atmel Studio), see the macros that have "_P" in them. such as printf_P() and others to declare strings and arrays to be flash-resident and not copied to RAM.
In assembly language, see the LPM instruction.