Your Language in a Box Now with BONUS for run-time placement.

Write a program to fill a text box with the identifiers used in your program while keeping your program
small. With all the identifiers you have used (excluding those you created) in 
your program, fill a 12x6 box with as many as you can. You get extra points for
identifiers that cross over (crossword style), but they can't join end to end.

Output

Your program should print (to stdout) a 12x6 character box with your packed identifiers and a # border. The
box should have columns labeled with letter A-L and the rows 1-6 (spaced like the example below). Then print a
line for each identifier used. Each line will have the location of the first
letter, the identifier itself, and the score. The score is equal to the number
of letters in the identifier with a possible '+bonus' added. The identifier gets
a 5 point bonus for each letter shared with a crossing identifier. The final
line reports 'TOTAL: ' and the sum of the identifier scores. An example output
for a possible Python program would look like this:

   ABCDEFGHIJKL
  ##############
1 #  pinsert   #
2 #  o         #
3 #  print     #
4 #    not     #
5 #            #
6 #import      #
  ##############
C1 pop 3+5
D1 insert 6
C3 print 5+10
E3 in 2+10
E4 not 3+5
A6 import 6
TOTAL: 55


Notes:


Identifiers can be unattached (like import above).
You cannot join pop and print inline with poprint.
The string in inside insert cannot be used. Joining words must be orthogonal.
Identifiers can be placed next to each other (like pop and insert above).


Your answer should include your program output with your source code and a title
consisting of the language name and your score.

Score

Your score for the challenge will the the puzzle score squared divided by the
size of your source code (in bytes). Eg: The puzzle above with a 300 byte
program would score 55*55/300 = 10.08. Highest score wins.

Rules


You can use any identifier in your program that is not defined by you.
Keywords, class names, method names, library names, and built-in function names are examples of eligible identifiers.
EDITED: You may only use standard libraries that are included with the minimum language release. Extended language packages and the use of external libraries (are now) forbidden. The huge range of libraries with extensive lists of identifiers would unbalance this challenge. If you are unsure of how this works with your language, please leave a question in the comments.
Identifiers must consist of [a-zA-Z_] characters only and have at least 2
characters.
You may only use each identifier once in the puzzle.
Identifiers can only be used left to right or downwards.


Dynamic Bonus!

If your code determines where to place identifiers at run time, the shared letter bonus will be 20 instead of 5. You may list which identifiers will used, but your code must decide where in the box to place them. Your code must also calculate and print the score list. If your placements depend on the ordering of the identifier list, hard-coded pairings, or other non-dynamic placement short-cuts, you are not eligible for the Dynamic Bonus.

In the example output above, the puzzle score for a run-time placement program would become 145. Then if the code was 800 bytes, the score would be 145*145/800 = 26.28.

The Dynamic Bonus is designed to reward clever algorithms instead of static hard-coded solution strings, and compensate for the larger resulting source code size.

EDITS: 


Changed libraries used to only those in the minimum language release.
Added the dynamic bonus option.
Python, 1342 / 349 = 50.02

If I have understood the rules correctly, this should be a valid submission.

from sys import *
stdout.write("""   ABCDEFGHIJKL
  ##############
1 #from   f  i #
2 #  r   not t #
3 #      write #
4 #  s   import#
5 #  y   False #
6 #  stdout    #
  ##############
A1 from 4+5
C1 or 2+5
H1 format 6+25
K1 iter 4+10
G2 not 3+5
G3 write 5+10
C4 sys 3+5
G4 import 6+10
G5 False 5+5
C6 stdout 6+10
TOTAL 134
""".format(not False or iter([])))


You can really just keep incrementing your score by adding more identifiers: the size of the program increases linearly (by approx. twice the identifier length), while the score increases approximately by the square of the identifier length. Then the challenge becomes more how to cram most keywords into the square instead of how to write a short program to do it.