Idiomatically determine all the characters that can be used for symbols.
The word symbols is meant things like names of variables, procedures (i.e., named fragments of programs, functions, subroutines, routines), statement labels, events or conditions, and in general, anything a computer programmer can choose to name, but not being restricted to this list. Identifiers might be another name for symbols.

The method should find the characters regardless of the hardware architecture that is being used (ASCII, EBCDIC, or other).

Task requirements
Display the set of all the characters that can be used for symbols which can be used (allowed) by the computer program.
You may want to mention what hardware architecture is being used, and if applicable, the operating system.

Note that most languages have additional restrictions on what characters can't be used for the first character of a variable or statement label, for instance. These type of restrictions needn't be addressed here (but can be mentioned).

See also
 Idiomatically determine all the lowercase and uppercase letters.


[ $ "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrS"
  $ QsTtUuVvWwXxYyZz()[]{}<>~=+-*/^\|_.,:;?!'"`%@&#$Q 
  join ] constant                                     is tokenchars (   --> $ )
 
( The first non-whitespace character after the word $
  (pronounced "string") is deemed to be the delimiter
  for the string that follows it. In the first string 
  the conventional character " is used, so cannot
  appear as a character in that string. In the second 
  string all the reasonable delimiters are used, so Q
  is used as the delimiter.
 
  As it is not possible to make a string that uses all
  the characters, two strings are concatenated (join)
  to make the string during compilation. (Which is why
  $ "0...S" $ Qs...$Q join is nested (inside [ ... ])
  and followed by the word constant, which causes the 
  nest to be evaluated during compilation.)
 
  Regardless of operating system, Quackery only knows 
  the characters in the string tokenchars, plus space
  and carriage return.
 
  The characters in tokenchars are in QACSFOT order
  (the Quackery Arbitrary Character Sequence For 
   Ordered Text) which it uses for string comparison,
   but the valid tokens (which is all of them) will
   be printed by alltokens in the order native to the 
   operating system. (In this instance, Unicode.)     )
 
[ tokenchars find 
  tokenchars found ]                                  is validtoken ( c --> b )
 
[ 256 times 
  [ i^ validtoken if [ i^ emit ] ] ]                  is alltokens  (   -->   )
 
alltokens