| Bytes | Lang | Time | Link |
|---|---|---|---|
| 030 | Forte | 240910T224647Z | ATaco |
| 056 | Deadfish~ | 240910T131326Z | None1 |
| 036 | JavaScript Node.js | 240910T105437Z | Shaggy |
| 038 | Lua | 230418T220803Z | bluswimm |
| 010 | Rattle | 210711T015848Z | Daniel H |
| nan | 221202T162926Z | bigyihsu | |
| nan | 221202T161407Z | bigyihsu | |
| 014 | GolfScript | 221202T033400Z | emirps |
| 014 | Alice | 221117T090510Z | Julian |
| 013 | q | 221117T081550Z | cillianr |
| 025 | Zsh builtins only | 221117T051339Z | roblogic |
| 066 | Pascal | 221103T100647Z | Kai Burg |
| 023 | Knight v2 | 221103T070127Z | Sampersa |
| 009 | Z80Golf | 221103T045633Z | EasyasPi |
| 007 | Ly | 220808T052203Z | cnamejj |
| 023 | Knight | 220807T193829Z | naffetS |
| 512 | AMD64 Bare Metal | 220727T232344Z | Eric Xue |
| 027 | Kotlin | 220709T173314Z | wartoshi |
| 018 | Julia 0.4 | 160711T055706Z | Dennis |
| 015 | Julia 1.0 | 210713T133022Z | MarcMush |
| 005 | Vyxal | 210710T024904Z | Wasif |
| 020 | Python 3 | 210710T182019Z | Makonede |
| 129 | Perl 5 using only keywords with lowercase alphabets only separating each of them only a space | 210709T124826Z | user1004 |
| 018 | Factor | 210622T091326Z | chunes |
| 002 | Japt | 180427T072508Z | Shaggy |
| nan | Pxem | 210321T060304Z | user1004 |
| 015 | x86_16 machine code | 210306T142540Z | Febriyan |
| 032 | naz | 210316T004916Z | sporebal |
| 007 | APL Dyalog Extended | 210315T211120Z | Adá |
| 041 | Python | 210308T181247Z | SegFault |
| 024 | Elixir | 180905T090348Z | Kirill L |
| 022 | PowerShell 5.1 | 180904T223244Z | Veskah |
| 011 | Dyalog APL | 160711T054113Z | Adá |
| 018 | Befunge93 | 180514T155059Z | Gegell |
| 045 | Prolog SWI | 180430T101300Z | ASCII-on |
| 047 | JavaScript Node.js | 180510T013631Z | Muhammad |
| 029 | Yabasic/VBA | 180510T010852Z | Taylor R |
| 022 | Mathematica | 160711T112615Z | LegionMa |
| 002 | Jelly | 180502T014920Z | habs |
| 053 | TSQL | 160711T080040Z | t-clause |
| 002 | Stax | 180501T132332Z | wastl |
| 027 | Forth gforth | 180430T131713Z | reffu |
| 052 | Whitespace | 180430T113122Z | Kevin Cr |
| 048 | Java 8 | 180430T102048Z | Kevin Cr |
| 057 | Swift 4 | 180430T102033Z | ASCII-on |
| 021 | Perl 5 | 180427T012942Z | ASCII-on |
| 019 | Chip w gii c127 | 180427T195510Z | Phlarx |
| 030 | Python 2 | 180427T090643Z | lynn |
| 028 | VBA Excel | 180427T085525Z | remoel |
| 014 | Ruby | 180427T080147Z | Kirill L |
| 012 | Actually | 180427T054104Z | ASCII-on |
| 020 | 3var | 180427T052740Z | ASCII-on |
| 008 | 2sable | 180427T051728Z | ASCII-on |
| 002 | 05AB1E | 180427T051313Z | ASCII-on |
| 019 | ><> | 180427T045534Z | ASCII-on |
| 012 | Add++ | 180427T040800Z | ASCII-on |
| 001 | Canvas | 180427T013456Z | hakr14 |
| 055 | Tcl | 180427T011721Z | ASCII-on |
| 001 | Charcoal | 180427T012626Z | ASCII-on |
| 041 | Common Lisp | 180427T011823Z | ASCII-on |
| 030 | F# .NET Core | 180427T010557Z | snail_ |
| 009 | Gol><> | 180426T232206Z | Bubbler |
| 054 | Bash | 180426T212816Z | LambdaBe |
| 012 | Retina | 180426T211819Z | mbomb007 |
| 033 | C | 160711T122355Z | Jasmes |
| 024 | PHP | 160711T052556Z | Quill |
| 018 | Retina | 160711T071030Z | Martin E |
| 003 | MATL | 160711T022006Z | Suever |
| 040 | C# | 160711T073751Z | wonea |
| 006 | Majc formely hashmap | 160711T121039Z | user4701 |
| 057 | Excel VBA | 160711T115938Z | tjb1 |
| 035 | C | 160711T092920Z | Quentin |
| 041 | Lua | 160711T083943Z | brianush |
| 017 | Ruby | 160711T090843Z | daniero |
| 025 | Scala | 160711T082854Z | cliffroo |
| 003 | Brachylog | 160711T063139Z | Fatalize |
| 005 | Pyke | 160711T074034Z | Blue |
| 016 | Haskell | 160711T063234Z | Damien |
| 027 | Brainfuck | 160711T042959Z | Dennis |
| 054 | JavaScript | 160711T013819Z | charredg |
| 075 | SQL | 160711T043704Z | Phrancis |
| 029 | Cheddar | 160711T040953Z | Downgoat |
| 013 | Octave | 160711T030637Z | beaker |
| 039 | Brainfuck | 160711T013157Z | NinjaBea |
| 018 | Bash + general Linux utilities | 160711T021210Z | Digital |
| 040 | C | 160711T014534Z | anna328p |
| 005 | Pyth | 160711T010829Z | Doorknob |
| 017 | Perl 6 | 160711T013830Z | Brad Gil |
| 036 | Python 2.7 | 160711T013602Z | R. Kap |
| 006 | CJam | 160711T005128Z | Dennis |
Forte, 30 bytes
508END128PUT128/4:LET128=128+4
With Whitespace
508 END
128 PUT 128/4: LET 128=128+4
Forte is a language about changing the meaning of integers, and as such makes even trivial tasks difficult.
This begins by setting line 508 to end, which happens to be 127*4. Then, at line 128 it prints the character represented by 128/4 (32). It then immediately sets 128 to be 128+4, this means that the line at 128+4 becomes the same as was at 128, though with the equation now being (128+4)/4. This repeats until line 508, which would have been the DEL character, but instead exits execution.
Deadfish~, 56 bytes
iisiisdddd{ci}{ci}{ci}{ci}{ci}{ci}{ci}{ci}{ci}cicicicici
Explanation:
iisiisdddd - set the accumulator to 32 (ASCII of space)
{ci}{ci}{ci}{ci}{ci}{ci}{ci}{ci}{ci}cicicicici - Print and increment for 95 times, thus prints all characters in printable ASCII
Deadfish~ is not really the perfect language for the challenge because there are 95 characters in printable ASCII and Deadfish~ only has a loop that repeats code 10 times.
Lua, 38 bytes
for i=32,126 do print(('').char(i))end
or, if newlines are not allowed, 41 bytes:
for i=32,126 do io.write(('').char(i))end
Rattle, 10 bytes
32|![,+]96
Explanation
This is reasonably simple:
32| sets the top of the stack to 32
! disables implicit output of the top of the stack
[ ]96 loops 96 times
, prints the ASCII character of the int value on top of the stack
+ increments the top of the stack
International Phonetic Esoteric Language, 21 bytes
{3j}{w}ɑeχue1søɒ
Ungolfed
{3j}{w} ( loop bounds: 32 w <= e < 127 3j )
ɑ ( loop )
e ( push index )
χ ( ord index )
u ( pop-output without newline )
e1sø ( increment index )
ɒ ( end loop )
GolfScript, 15 14 bytes
-1 byte thanks to Steffan
95,{[32+]''+}/
Explanation
{...}/ # for each item in
95, # 0-95
[32+] # add 32 to that number and put it in an array
''+ # output that value as ascii
Alice, 14 bytes
' w.oh.'~h-$K@
Explanation
' w.oh.'~h-$K@ Full program
' Adds 32 (space) on the stack
w $K@ Repeat until...
.'~h- ...we reach 126 (~)
.oh Print and increase the current character
q, 13 bytes
10h$32+til 95
k, 10 bytes
10h$32+!95
Generate 32, 33, ..., 126, 127 and convert these to their ASCII character representations.
Zsh builtins only, 25 bytes
Using "builtins only" to avoid competing with the jot solution (18 bytes).
for a ({\ ..~})echo -n $a
for a ({32..126})echo -n ${(#)a}
Pascal, 66 B
This program requires to be run on a processor using the ASCII character set (or a binary-compatible superset). The output will look quite different for instance on an IBM mainframe using EBCDIC.
program p(output);var c:char;begin for c:=' 'to'~'do write(c)end.
Note, in Pascal for-loop limits are inclusive.
During the final iteration c assumes the specified value '~'.
Z80Golf, 9 bytes
00000000: 3e 20 06 5f ff 3c 10 fc 76 > ._.<..v
Assembler source (z80asm):
start:
; start at space
ld a, ' '
; loop counter
; I could also cp 0x7f; jr nz, .loop but this is faster to TOTALLY make up for below
ld b, 0x7F - ' '
.loop:
; Call 0x38, then nop slide to 0x8000 to print A to stdout
; only has a 130842 cycle overhead, which is worth the 2 bytes it saves
rst 0x38
; set A to the next char
inc a
; Decrement b, then loop if non-zero
djnz .loop
; Exit
halt
Pretty straightforward loop approach.
Ly, 7 bytes
' '~R&o
' '~ - push first (" ") and last ("~") printable characters
R - generate a rage of codepoints
&o - print the stack as characters
Knight, 23 bytes
;=a 31W>127=a+1aO+Aa"\"
Unminified:
; = a 31
: WHILE (> 127 (= a (+ 1 a)))
: OUTPUT (+ (ASCII a) "\")
AMD64 Bare Metal, 512 bytes
mov ah, 0x0e
mov al, 0x20
for_1:
int 0x10
add al, 1
cmp al, 0x7f
je for_1_end
jmp for_1
for_1_end:
jmp $
times 510-($-$$) db 0
db 0x55
db 0xaa
nasm asciiprintable.asm -f bin
qemu-system-x86_64 -drive format=raw,file=asciiprintable
Julia 0.4, 18 bytes
map(print,' ':'~')
If returning a string from a function is acceptable, a further byte can be saved.
f()=' ':'~'|>join
Python 3, 20 bytes
lambda:range(32,127)
Try it online! Returns a range of codepoints.
lambda:range(32,127) # full program
lambda: # return function taking no arguments that returns...
range( , ) # range object of all integers between...
32 # literal...
range( , ) # minus 1 and...
127 # literal
Perl 5 using only keywords with lowercase alphabets only separating each of them only a space, 227 129 bytes
eval q y print chr length xor s qq q while uc le q q q x length q q truncate tie q x length q q foreach q y for q q q x ord q q q
How it works
eval q y
print chr length
xor s qq q
while
# default variable has spaces only; equibalent to $_
uc
# instead of <=126
le q q q
# 126==14*9
x length q q truncate tie q
x length q q foreach q
# just noticed i could golf the word
y for q q q x ord q q q
Previous: 227 bytes.
eval q y print chr length xor s qq q while chr length lt chr length q q length length length length length length length length length length length length length length length length length length q y foreach q q q x ord q q q
How it works
Using length of default variable to be accumulator.
eval q y
# print chr($accumulator)
print chr length xor
# increment it
s qq q
while
# instead of <
chr length lt
# 127 is unfortunately a prime; any efficient ideas within the restrictions?
chr length q q length length length length length length length length length length length length length length length length length length q
# $accumulator=32
y foreach q q q x ord q q q
Factor, 18 bytes
32 126 [a,b] write
Works in any modern version of Factor that supports printing non-string sequences directly. (i.e. not TIO.)
Japt, 2 bytes
;E
Or, without a built-in:
Japt -P, 5 bytes
95odH
95o :Range [0,95)
d :Get the characters at those codepoints
H :After adding 32
Pxem, 17 bytes (filename) + 0 bytes (content) = 17 bytes.
- Filename (some unprintables are escaped):
~.z.c\001.-.c\037.a.s.p - Content: empty.
With comments
XX.z
.a~.zXX.z # push 127; while size<2 || (pop!=pop); do
.a.cXX.z # dup
.a\001.-XX.z # push 1; push abs(pop-pop) iff size>=2
.a.cXX.z # dup
.a\037.aXX.z # push 31; done
.a.s.pXX.z # pop (* to remove 31 *); while size>0; do printf "%c", pop; done
.a
x86_16 machine code - 21 15 bytes
-6 bytes, thanks @anna328p
B8 20 0E MOV AX, 0E20H
.LOOP:
CD 10 INT 10H
40 INC AX
3C 7E CMP AL, 7EH
75 F6 JNE .LOOP
B8 4C00 MOV AX, 4C00H
CD 21 INT 21H
Running on DOSBox :
naz, 32 bytes
4a5m6m6a2x1v1x1f1a1o3x1v1l0x4d1f
Explanation (with 0x instructions removed)
4a5m6m6a2x1v # Set variable 1 equal to 126
1x1f # Function 1
1a1o # Add 1 to the register, then output
3x1v1l # Goto the start of the function if the register is less than variable 1
4d # Integer divide by 4, setting the register to a value of 31
1f # Call function 1
Python - 41 bytes
for i in range(32, 127, 1):
print(chr(i))
Python has a built-in ASCII function, so we can use that and print all 95 characters in a loop, one at a time.
No newlines - 50 bytes
for i in range(32, 127, 1):
x = x + chr(i)
print(x)
This is just in case newlines aren't allowed, so this entry still gets in.
Elixir, 24 bytes
IO.puts Enum.uniq 32..?~
Prints a trailing newline. If that's not acceptable, it's +1 byte for write instead of puts.
uniq is the cheapest operation I managed to find for converting range to list. As a bonus, here are 4 different programs that all accomplish the task in 27 bytes:
IO.puts Enum.to_list 32..?~
IO.puts Enum.into 32..?~,[]
IO.puts Enum.take 32..?~,95
IO.puts for n<-32..?~,do: n
PowerShell 5.1, 22 Bytes
-join[char[]](32..126)
Or 17 bytes if newlines are allowed and we can ditch the join.
Dyalog APL, 11 bytes
⎕UCS 31+⍳99
⍳99 integers 1 through 99
31+ add 31 to them
⎕UCS pick those from the Unicode Character Set
Befunge-93, 18 bytes
g:"~"`#@_:,1+00p#
You can try it here. The leading space is important!
The current character to be printed/checked, starts loop with a space
g Push character from (0|0) onto stack(using the implicit 0s on the empty stack)
:"~"`#@_ Check whether the char on (0|0) is over ~, if yes then end
:,1+00p Duplicate current char for output and incrementation
# Since the code is a torus, it would continue at (0|0) so we skip it, since it could break the code.
Yabasic/VBA, 29 bytes
An anonymous function that takes no input and outputs to the console.
Note that the VBA answer could be 1 byte shorter by using Chr instead of Chr$.
For i=32To 126:?Chr$(i);:Next
Yabasic: Try it online!
VBA: There is no TIO for VBA :(
Mathematica, 22 bytes
32~CharacterRange~126&
Pretty simple. & creates an anonymous function and 32~CharacterRange~126 outputs a list of characters from 32 () to 126 (~). Actually, I'm pretty sure this is optimal this time.
Jelly, 2 bytes
ØṖ
Yep, it's included, but here's an answer without the builtin:
Jelly, 7 bytes
95Ḷ+32Ọ
95Ḷ create lowered range, from 0 to 94 inclusive
+32 add 32 to every element in the range
Ọ cast the entire list to characters and implicitly print
TSQL, 53 bytes - Vertical solution
DECLARE @ int=32x:PRINT char(@)SET @+=1IF @<127GOTO x
TSQL, 75 71 68 bytes - Horizontal solution
DECLARE @ char(95)=''WHILE 95>LEN(@)SET @=char(126-LEN(@))+@ PRINT @
Forth (gforth), 27 bytes
: f 127 32 do i emit loop ;
Explanation
127 32 do \ loop from 32 to 126 (127 is not printable)
i emit \ get the index of the loop, then print it as its ascii representation
loop \ end the loop
Whitespace, 52 bytes
[S S S T S S S S S N
_Push_32][N
S S N
_Create_Label_LOOP][S N
S _Duplicate][T N
S S _Print_as_character][S S S T N
_Push_1][T S S S _Add][S N
S _Duplicate][S S S T T T T T T T N
_Push_127][T S S T _Subtract][N
T T N
_If_negative_Jump_to_Label_LOOP]
Letters S (space), T (tab), and N (new-line) added as highlighting only.
[..._some_action] added as explanation only.
Try it online (with raw spaces, tabs, and new-lines).
Program stops with error: No exit defined.
Pseudo-code:
Integer c = 32
Start LOOP:
Print c as character
c = c + 1
If c - 127 is negative:
Go to next iteration of LOOP
Java 8, 48 bytes
v->{for(char i=31;++i<127;)System.out.print(i);}
Explanation:
v->{ // Method with empty unused parameter and no return-type
for(char i=31;++i<127;) // Loop characters from ' ' to '~'
System.out.print(i);} // And print it
Chip -w -gii -c127, 19 bytes
aABbcC,~S
dDEefF^Gg
Flags:
-wDon't attempt to read stdin-giiGenerate incrementing bytes for input-c127Cut off execution at 127 cycles
Code:
This is a cat program suitable for ASCII (only handles 7 bits):
aABbcC
dDEefF Gg
And this suppresses output for values outside the range 0x20-0x7f. (More accurately, it requires that at least one of the bits 0x20 or 0x40 to be true):
,~S
F^G
VBA (Excel), 28 bytes
using immediate window.
for i=32to 126:?chr(i);:next
Actually, 12 bytes
:95r:32+♂┌εj
Explanation
:95r Push [0 .. 95]
:32+ Add 32
♂┌ Map chr over TOS
εj Join by empty string
3var, 20 bytes
iiss+<+<>+<+<kkF[Pi]
Explanation
iiss Increment A twice, square A twice (set a to 16)
+ Add A to B (set R to 16)
< Set B to R
+<> Add A and B (16 + 16 = 32), store to A and B
+<+< Add 32 to B twice more (B = 96)
kk Decrement B twice (B = 94)
F[ ] Do B times
Pi Print A as character and increment A
2sable, 8 bytes
95Ý32+çJ
Same as for 05AB1E
Explanation
95Ý Push [0..95]
32+ Add 32 (vectorizes)
ç chr (vectorizes)
J Join by empty string
05AB1E, 2 bytes
žQ
No builtin, 8 bytes:
95Ý32+çJ
Explanation
95Ý Push [0..95]
32+ Add 32 (vectorizes)
ç chr (vectorizes)
J Join by empty string
><>, 21 19 bytes
48*v
)?;>:o1+:763**
Explanation
48*v Push 32 and move down
Print character, increment, stop if greater than 126
)?;>:o1+:763**
Add++, 12 bytes
L^,126 32rBF
Explanation
L^, Lambda returning stack cast to string (takes character code of numbers)
126 32r Inclusive range from 32 to 126
BF Flatten stack
Charcoal, 1 byte
γ
No builtin, 7 bytes:
⪫…· ¦~ω
Explanation
⪫ ω Join by empty string
…· ¦~ Inclusive range from " " to "~"
Gol><>, 9 bytes
`_FLss|rH
How it works
`_FLss|rH
`_F...| Run the following 95 times:
Lss Push the loop counter + 32
rH Print all the chars in the pushed order and halt
Bash, 54 bytes
man ascii|fold -w1|LC_ALL=C sort -u|tr -cd '[:print:]'
I like that this uses the ASCII man page (which contains an ASCII table) to extract the characters.
Retina, 12 bytes
The is the Unit Separator character \x1F (31)
+;T`p`p_
Retina 0.8.2, 18 bytes
Same method as above, but requires some extra bytes for printing and not having a trailing newline.
+*\T`p`p_
\`.
If, like in Martin's answer, a trailing newline is acceptable, then this is possible, beating him by 5 bytes:
Retina 0.8.2, 13 bytes
+*\T`p`p_
C, 33 bytes
i;f(){++i<96&&putchar(i+31)|f();}
PHP, 40 30 29 26 24 bytes
Thanks to Mego, manatwork and Titus for helping me golf this down.
<?=join(range(' ','~'));
Retina, 18 bytes
~
{2`
$`
T01`p`_p
The leading linefeed is significant.
Explanation
Stage 1: Substitution
~
We start by replacing the empty (non-existent) input with a single ~.
Stage 2: Substitution
{2`
$`
The regex of this substitution is still empty, since the ` separates configuration from regex and {2 is therefore just the configuration. The { indicates that the remaining two stages should be run in a loop until they stop changing the output. The 2 indicates that this specific stage has a limit of 2, meaning that only the first two matches of the regex will be replaced. Since the regex is empty, that means we get an empty match in front of the string and an empty match after the first character.
This match is replaced with the prefix $` which refers to everything in front of the match. For the first match, there is nothing in front of it, so this doesn't insert anything, but for the second match, there is the leading character in front of it, which therefore gets duplicated.
Stage 3: Transliteration
T01`p`_p
Here, T activates transliteration mode, and 0 and 1 are limits (where 0 just means "don't set this limit"). Together, they mean "transliterate only the first character in the string". The actual transliteration maps from p to _p. Here, p expands to the printable ASCII characters and _ means "remove" this character, so the expanded lists look like this:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
That means spaces get removed and all other characters get decremented by one.
To see how the last two stages act together here is the string after each of the first few and last stages:
~
~~
}~
}}~
|}~
||}~
{|}~
...
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Since the state of the string is only checked after every other stage to determine whether to end the loop, and the two stages cancel each other once we reach the leading space (since Stage 2 adds a space and Stage 3 removes it), this terminates the loop and therefore the program.
C#, 51 45 40 bytes
for(char x=' ';x<=128;)Debug.Write(x++);
Majc (formely hashmap), 6 bytes
r af
The delete character is unprintable so here's the hex code (xxd):
0000000: 7220 7f61 660a r .af.
Excel VBA, 57 bytes:
Prints individual characters
Sub a()
For i = 32 To 126
Debug.Print Chr(i)
Next
End Sub
Prints out joined string, 68 bytes
Sub a()
For i = 32 To 126
b = b & Chr(i)
Next
Debug.Print b
End Sub
C - 35 bytes
f(i){for(i=31;++i<128;putchar(i));}
Call:
int main() {
f();
}
Uses the horrible (Will again if OP confirms that a vertical output is OK).int-as-a-string trick I learnt from Lynn.
Lua - 41 bytes
for i=32,127 do io.write(("").char(i))end
Ruby, 17 bytes
$><<[*' '..?~]*''
or
print *[*' '..?~]
Scala, 25 bytes
()=>' 'to'~'foreach print
Anonymous function with no args which prints given range
See it online: https://ideone.com/fX2rwf
Brachylog, 3 bytes
@Pw
@P is the string that contains the printable ASCII characters so… yeah, not very interesting.
It's not clear whether OP accepts built-ins or not, and since others have posted answers that use built-ins, I'll use the 3 bytes version until OP clarifies this point.
With no built-in, 14 bytes
32:126e Get a number between 32 and 126
:"~c"w Format that number to STDOUT as a char code
\ Backtrack
Pyke, 5 bytes
~KS4>
Pyke's printable variable isn't sorted and it contains tabs and newlines etc... :(
Haskell, 16 bytes
putStr[' '..'~']
Brainfuck, 30 27 bytes
+[[>++<<+>-]>]<<<++[<.+>++]
How it works
+ changes the initial cell to 1. After this step, we enter the following, nested loop.
[ While the current cell is non-zero:
[ While the current cell (C) is non-zero:
>++ Increment the cell to C's right twice.
<<+ Increment the cell to C's left.
>- Decrement C.
]
> Advance to the cell to C's right.
]
This computes consecutive powers of 2 until the the value 256 = 0 (mod 256) is reached. When the outer loop finishes, the tape is in the following state.
v
001 002 004 008 016 032 064 128 000 000 000
<<<++ retrocedes three cells and increments twice, leaving the tape as follows.
v
001 002 004 008 016 032 066 128 000 000 000
Now we're ready to print the actual output. As a stop condition, we increment the cell above twice each time we print and increment the cell to its left. Since 66 + 95 × 2 = 256 = 0 (mod 256), we stop after printing all 95 printable ASCII characters. We achieve this as follows.
[ While the current cell (C) is non-zero:
< Retrocede to the cell to C's left.
.+ Print its content and increment.
>++ Increment C twice.
]
JavaScript, 54 bytes
for(i=32;i<128;i++)console.log(String.fromCharCode(i))
Wasted quite a few bytes printing it... Also prints each char on a new line.
SQL, 76 75 bytes
(Microsoft SQL Server 2012+)
declare @ int=32;while(@<127)begin;print char(@);set @+=1;end
Cheddar, 29 bytes
->(32:126).map((i)->@"i).fuse
Range from 32-126, loop over it and get the string at the given char code @" and the fuse together (join)
Cheddar, 7 bytes
32@"126
Unfortunately this is broken as of the current release but I'm sure you can go back some versions where this works
Brainfuck, 40 39 bytes
++++[->++++[->++>++++++<<]<]>>>-[-<.+>]
Explanation
++++[->++++[->++>++++++<<]<]
The nested loops basically mean you multiply the number of plusses together, so 4 × 4 × 2 = 32 in one cell and 4 × 4 × 6 = 96. Here is the tape after running this:
00 00 32 96
^
>>>- moves the pointer to the fourth cell and decrements it. Now we're done with the setup. 32 is the code for space, the first printable ASCII character. 95 is the number of characters we have to print. Here is the tape now:
00 00 32 95
^
[-<.+>] runs until the current cell (the fourth one) is zero. It decrements the counter and prints the character and increments it for the next time.
Bash + general Linux utilities, 18
jot -s '' -c 95 32
C, 40 bytes
f(){for(char i=32;i<128;i++)putchar(i);}
Pyth, 5 bytes
srd\
r range from
d space
\<del> to the delete character, 0x7F (included literally in the program)
s sum (concatenate all)
Python 2.7, 36 bytes:
print''.join(map(chr,range(32,127)))
Simple enough. A full program that prints out the entire ASCII sequence in order.

