Ching-Tang Tseng

Hamilton, New
Zealand

1 May 2017

ilikeforth@gmail.com

http://forthfortnight.blogspot.com

Some kinds of output format are hard to implement out by a traditional BASIC.

A few codes are hard to read out clearly in traditional FORTH coding style.

I improved.

A few such kinds of example are showing in this article.

ABC FORTH special features are emphasized here on
purpose.

Example 1 : Output ability

First day I touched FORTH, I knew FORTH output ability
is better than any other kinds of non-extendable language, especial compare to
a traditional BASIC. No matter it is just to do a general printing output or is
to do a complicated port output to a device, FORTH certainly is the best tool
to do it.

Here is a simple question (courtesy of
http://practicalcomputing.org/tips/rosetta) needs a program to print out a
table, all elements inside are a regular order character attached by a regular
order number as the following format.

Table.1

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12

B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12

F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12

G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12

Traditional BASIC has a PRINT instruction for printing
message out. Variable names, 『 "....." 』, 『 , 』, 『 ; 』, or a mathematical expression
are able to be used to follow a PRINT instruction. After PRINT, system must to
do a line feed and carriage return once. Such a PRINT specification cannot help
us to print out Table.1 except you are using an artificial echo printing method.

In a general FOTH system, arrange an ASCII code EMIT and
an index . (DOT) together such as

"j emit i ." to be wrapped in
double structure of DO ... LOOP as following can performed out this table,

ForthTable and BasicTable are the answer codes.

ForthTable and BasicTable are the answer codes.

: ForthTable ( -- )

cr

73 65

do

13 1

do

j emit i
.

loop

cr

loop ;

In ABC FORTH, use a powerful RUN instruction to do
"j emit i .". Let you get the same effective output result. Traditional
BASIC lack of such a feature.

2 integers i j

: BasicTable ( -- )

basic

10 run cr

20 for j = 65 to 72

30 for i = 1 to 12

40 run j emit i .

50 next i

60 run cr

70 next j

80 end ;

Execution result:

ForthTable

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12

B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12

F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12

G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12

ok

BasicTable

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12

B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12

E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12

F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12

G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12

ok

Example 2. Chinese Remainder Theorem

One example of these questions is showing in the
program. Please see the contents of logical branch condition in Line 20.

\ simple version

integer i

: simple ( -- )

basic

10 for i = 1 to 100000000000

20 if ( i mod
11 = 1 ) and ( i mod 13 = 2 )

and ( i mod
15 = 3 ) and ( i mod 17 = 4 )

and ( i mod
19 = 5 )

then 60

30 next i

40 print " Question is inexact! "

50 goto 80

60 run 2drop

70 print " Answer = N * " ; i ; " , N =
1, 2, 3, ... "

80 end ;

\ turbo version: How does it speeded up? You ought to
know.

: turbo ( -- )

basic

10 for i = 19 + 5 to 100000000000 step 19

20 if ( i mod
11 = 1 ) and ( i mod 13 = 2 )

and ( i mod
15 = 3 ) and ( i mod 17 = 4 )

and ( i mod
19 = 5 )

then 60

30 next i

40 print " Question is inexact! "

50 goto 80

60 run 2drop

70 print " Answer = N * " ; i ; " , N =
1, 2, 3, ... "

80 end ;

simple

turbo

Answer = N * 346413 , N = 1, 2, 3, ...

Answer = N * 346413 , N = 1, 2, 3, ... OK

You are able to solve all kinds of Chinese Remainder
Theorem problem with the same code listed above by just to replace the contents in
line 20.

Upper limit index of FOR...NEXT set to be such a big number
is on purpose for testing in 64 bits system.

If ABC FORTH is not built in a general FORTH system, we
are unable to deal with the code in Line 60 RUN 2DROP. Is this ability to be
called unstructured?

Example 3. 64 bits working range

ABC FORTH is very easy to follow up a new or a 64 bits
FORTH system.

At the beginning of 64 bits era, a public domain 64 bits
BASIC is not so easy coming out quickly.

For me, so long as there is a FORTH system existed already,
I may have ABC FORTH added to it in less than 2 weeks. Even though a 64 bits
new FORTH system is always lack of floating point functions, I am able to build
my personal pure software floating point functions in it by ABC FORTH itself.

I don't like to work on any kinds of vendor's FORTH. I
used to work on public domain FORTH only.

Apply a 64 bits ABC FORTH program to find prime numbers
over a fixed 64 bits range can show you some special features.

These programs are simply based on the following three
properties of Prime Numbers.

(1) The lowest even prime number is 2

(2) The lowest odd prime number is 3

(3) All prime numbers above 3 can be represented by the
formula 6n + 1 and 6n - 1 for n>=1

This was the simplest version adopted by me at the beginning
when I developed.

5 integers I J L A B

: SimplePrange ( -- )

BASIC

10 print " Input start and stop numbers A and B, A
< B, A must >= 10 " cr

20 inputi A , B

30 for J = A to B

40 if ( J mod 2 = 0 ) OR ( J mod 3 = 0 ) then 220

50 for I = 6 to sqrt ( J ) + 1 step 6

60 if ( J mod ( I - 1 ) = 0 ) OR ( J mod ( I + 1 ) = 0 )
then 210

70 next I

100 print J

110 goto 220

210 run 2drop

220 next J

300 end ;

The final consolidated TurboPrange code with proving output
is as following.

You are able to get some detail features via to compare
it to the SimplePrange code listed above.

5 integers I J A B C

: TurboPrange ( -- )

BASIC

10 print " Enter start and stop numbers A and B, A
< B, A must >= 10 " cr

20 inputi A , B

30 LET C = 0

40 for J = A to B

50 if J mod 2 = 0 then 220

60 if J mod 3 = 0 then 220

70 for I = 6 to sqrt ( J ) + 1 step 6

80 if J mod ( I - 1 ) = 0 then 210

90 if J mod ( I + 1 ) = 0 then 210

100 next I

110 let C = C + 1

120 print J ; " = 6 x " ; J / 6 ; " +
" ; J mod 6

130 goto 220

210 run 2drop

220 next J

310 PRINT " Total primes = " ; C

320 end ;

TurboPrange

Enter start and stop numbers A and B, A < B, A must
>= 10 !

? 1000000000001000 1000000000002000

1000000000001003 = 6 x 166666666666833 + 5

1000000000001027 = 6 x 166666666666837 + 5

1000000000001063 = 6 x 166666666666843 + 5

1000000000001089 = 6 x 166666666666848 + 1

1000000000001117 = 6 x 166666666666852 + 5

1000000000001209 = 6 x 166666666666868 + 1

1000000000001269
= 6 x 166666666666878 + 1

1000000000001293 = 6 x 166666666666882 + 1

1000000000001347 = 6 x 166666666666891 + 1

1000000000001371 = 6 x 166666666666895 + 1

1000000000001413 = 6 x 166666666666902 + 1

1000000000001491 = 6 x 166666666666915 + 1

1000000000001503 = 6 x 166666666666917 + 1

1000000000001551 = 6 x 166666666666925 + 1

1000000000001617 = 6 x 166666666666936 + 1

1000000000001623 = 6 x 166666666666937 + 1

1000000000001669 = 6 x 166666666666944 + 5

1000000000001741 = 6 x 166666666666956 + 5

1000000000001749 = 6 x 166666666666958 + 1

1000000000001819 = 6 x 166666666666969 + 5

1000000000001839 = 6 x 166666666666973 + 1

1000000000001867 = 6 x 166666666666977 + 5

1000000000001897
= 6 x 166666666666982 + 5

Total primes = 23
OK

Example 4: Self-built programming grammar

Courtesy of http://rosettacode.org/wiki/100_doors, I would like to cite contents in this website to test my ABC FORTH by means of some different codes.

This program is a nice tool to find a prime number in a
specified range. I developed it and applied it to many aspects. Program is
posting here only to prevent anybody argue any doubted tips to me. Simplification is to be emphasized first. No more simplification are needed. If a number is not a
prime number, it will be checked out by MOD operation with four numbers: 2, 3,
6n-1, 6n+1. Speed is acceptable. There are no storage table must to be announced
in this program.

When I am doing congruence method random number
generator design, I need a so called magic number in 64 bits environment, it
should be a prime number. This program help me some.

There are many websites consumed a lot of storage capacity
to show you all prime numbers among a specified range. I need not to waste my
time for surfing. 14 lines code are enough to satisfy my demand.

Before I got the output outcome, I was still doubted a
little bit about all prime numbers could be represented by 6n-1 or 6n+1 format.
I used this program to prove it. Example 4: Self-built programming grammar

Courtesy of http://rosettacode.org/wiki/100_doors, I would like to cite contents in this website to test my ABC FORTH by means of some different codes.

For the purpose of convenience, 100 Doors question re-post
here again:

Question:

There are 100 doors in a row that are all initially
closed.

You make 100 passes by the doors.

The first time through, visit every door and toggle
the door (if the door is
closed, open it; if it is open, close it).

The second time, only visit every 2nd door (door #2, #4, #6, ...), and toggle it.

The third time, visit every 3rd door (door #3, #6, #9, ...), etc, until you only visit the 100th door.

Task:

Answer the question:
what state are the doors in after the last pass? Which are open, which are closed?

The alternate solution in that web page has been ignored here,
owing to have no interesting.

Somebody did a FORTH version. Thanks to him. Instruction
"toggle" is still an useful word to me. So quote it first.

: toggle ( c-addr -- ) \ toggle the byte at c-addr

dup c@ 1 xor
swap c! ;

100 1+ ( 1-based
indexing ) constant ndoors

create doors
ndoors allot

: finit ( -- )
doors ndoors erase ; \ close
all doors

: pass ( n -- ) \ toggle every nth
door

ndoors over do

doors i +
toggle

dup ( n )
+loop drop ;

: run ( -- )
ndoors 1 do i pass loop ;

: display ( -- )
\ display open
doors

ndoors 1
do doors i + c@ if i .
then loop cr ;

: DoorsV1 CR finit run display ;

A few ABC FORTH codes can do the same thing out. All
of them are using the same one array data structure DOOR(100). FORTH system
used to do nothing about initialization for a data structure. Instruction "binit"
is doing it.

DoorsV2 is a directive translated code from its original
GW-BASIC demonstrated code.

100 (ARRAY) DOOR

2 integers HOP I

: binit ( -- )

basic

10 FOR I = 1 TO 100

20 LET DOOR ( I ) = 0

30 NEXT I

40 end ;

: DoorsV2 ( -- )

BASIC

10 run binit

40 FOR HOP = 1 TO 100

50 FOR I = 0 TO 100 STEP HOP

60 LET DOOR ( I ) = DOOR ( I ) + 1

70 NEXT I

80 NEXT HOP

90 FOR I = 1 TO 100

100 IF DOOR ( I ) MOD 2 = 1 THEN 120

110 GOTO 130

120 PRINT I

130 NEXT I

140 END ;

The following 3 codes use this common code named
PrintResult.

: PrintResult

BASIC

10 FOR I = 1 TO 100

20 IF door ( I ) = 1 then 40

30 goto 50

40 PRINT " Door " ; I ; " is open "

50 NEXT I

60 END ;

DoorsV3 line 40 is showing one kind of self-built
programming grammar. Phrase "address-of door ( I ) iarray" can give
you the address of one array element Door(I). Original FORTH "toggle"
word can help you to toggle its content.

: DoorsV3

basic

10 run binit

20 FOR hop = 1 TO 100

30 FOR I = hop TO 100 STEP hop

40 run address-of door ( I ) iarray toggle

50 NEXT I

60 NEXT hop

70 RUN PrintResult

80 end ;

DoorsV4 line 40 is showing another kind of self-built
programming grammar. All contents of Door(I) toggled by means of mathematical
calculation: original content plus 1 then MOD 2.

: DoorsV4

basic

10 run binit

20 FOR hop = 1 TO 100

30 FOR I = hop TO 100 STEP hop

40 LET DOOR ( I ) = ( DOOR ( I ) + 1 ) MOD 2

50 NEXT I

60 NEXT hop

70 RUN PrintResult

80 end ;

DoorsV5 line 40 is showing one more kind of self-built
programming grammar. DoorsV5 adopt a functionalized method to solve this
problem. Let ABC FORTH can do the same thing as what the other BASICs can do.

Beware! Here this BASIC function "NOT" is not
the same as FORTH word "NOT". We must defined a FORTH word "0/1" first, then convert it to our new "NOT" function in BASIC
environment.

: 0/1 ( n -- 1/0 )

NOT ABS ;

' 0/1 IDEF NOT

: DoorsV5

basic

10 run binit

20 FOR hop = 1 TO 100

30 FOR I = hop TO 100 STEP hop

40 LET DOOR ( I ) = NOT ( DOOR ( I ) )

50 NEXT I

60 NEXT hop

70 RUN PrintResult

80 end ;

Execution results:

CR .( DoorsV1: )

DoorsV1

CR .( DoorsV2: )

DoorsV2

CR .( DoorsV3: )

DoorsV3

CR .( DoorsV4: )

DoorsV4

CR .( DoorsV5: )

DoorsV5

DoorsV1:

1 4 9 16 25 36 49 64 81 100

DoorsV2:

1

4

9

16

25

36

49

64

81

100

DoorsV3:

Door 1 is open

Door 4 is open

Door 9 is open

Door 16 is open

Door 25 is open

Door 36 is open

Door 49 is open

Door 64 is open

Door 81 is open

Door 100 is open

DoorsV4:

Door 1 is open

Door 4 is open

Door 9 is open

Door 16 is open

Door 25 is open

Door 36 is open

Door 49 is open

Door 64 is open

Door 81 is open

Door 100 is open

DoorsV5:

Door 1 is open

Door 4 is open

Door 9 is open

Door 16 is open

Door 25 is open

Door 36 is open

Door 49 is open

Door 64 is open

Door 81 is open

Door 100 is open
ok

Example 5: One step forward feature

During the past 30 years, a lot of people in FORTH
communities had ever done many programs to deal with the fraction number
computation. All those programs were working well under a simple fraction number format
condition. For example, to implement 1/2 + 1/3, let you get 5/6.

As for a real application, main role should be the mixed
fraction number format. Simple fraction number format could not cover all
computational requirements. Mixed fraction number are expressed such as 1(1/2)
or 3(11/17)...etc. But we must beware of their expressed meaning, an 1(1/2),
means 1 AND 1 over 2 ( 1+(1/2) ), not means 1 TIMES 1 over 2 ( 1*(1/2) ).

Based on all public domain FORTH fraction number codes,
we should stepped one more step forward, let it can be applied to our real world
application, and let it can be used in the program.

How to do it?

How to do it?

Nobody did it before, so I have to design such a system
by myself. to make up all mixed fraction number computational functions. I
dealt with all elements in the mixed fraction number system implemented the
same things as a general integer number did according to my personal
mathematical knowledge.

In this mixed fraction number system, you must consider
some new regulation. The most fundamental element expression format is
different from any other kind of mathematical system. We need 3 cells to
express an element. Its unit element is ( 1 0 1 ) or ( 0 1 1 ), Its zero
element should be ( 0 0 1). Then all other elements could follow these
regulation to define out. As to its reverse(negative) element, system allows
you to use one minus mark in one and only one cell, no matter which one of its
three cells is.

Fraction mathematic is an absolute value system. We
don't have to consider its precision. System has its own independent 4
mathematical operations /+/, /-/, /*/, ///. All general functions, for example
/MAX/, /MIN/, /**/, /SGN/, /ABS/...etc, could be designed out.

A sounded mixed fraction number system must able to be
used in the program. The following demo program show you this feature. I added one special output word mn. at the end. It converts a mixed fraction number to a
setting digits after the decimal point number. Digits setting is adjustable, here we set 1008 digits to it.

Question:

What are the summation and the average value of this
mixed fraction number series.

1&(1/1) + 2&(1/2) + ..........+ 10&(1/10)

Traditional FORTH code in the ABC FORTH system could be
coded as following:

/variable/ sumF

: demo1

0 0 1 sumF /!/

11 1

do

sumF /@/ i 1 i
/+/ sumF /!/

loop

cr ."
sumF = " sumF /@/ /3./

sumf /@/ 10 0 1
///

cr ."
sumF/10 = " /3./

cr sumF /@/ mn.

;

The following BASIC format code in ABC FORTH are doing
the same thing as above:

integer i

fraction sumB

: demo2

BASIC

10 let /{ sumB = ( 0 0 1 ) }/

20 for i = 1 to 10

30 let /{ sumB = sumB + ( i 1 i ) }/

40 next i

50 run cr ." sumB
= " address-of sumB /@/ /3./

60 let /{ sumB = sumB / ( 10 0 1 ) }/

70 run cr ." sumB/10 = " address-of sumB /@/
/3./

80 run cr address-of sumB /@/ mn.

90 end

;

PAGE DEMO1 DEMO2

\s

sumF = 57 &
( 2341 / 2520 )

sumF/10 = 5 & ( 19981 / 25200 )

57.92896825396825396825396825396825396825396825396 :50

82539682539682539682539682539682539682539682539682 :100

53968253968253968253968253968253968253968253968253 :150

96825396825396825396825396825396825396825396825396 :200

82539682539682539682539682539682539682539682539682 :250

53968253968253968253968253968253968253968253968253 :300

96825396825396825396825396825396825396825396825396 :350

82539682539682539682539682539682539682539682539682 :400

53968253968253968253968253968253968253968253968253 :450

96825396825396825396825396825396825396825396825396 :500

82539682539682539682539682539682539682539682539682 :550

53968253968253968253968253968253968253968253968253 :600

96825396825396825396825396825396825396825396825396 :650

82539682539682539682539682539682539682539682539682 :700

53968253968253968253968253968253968253968253968253 :750

96825396825396825396825396825396825396825396825396 :800

82539682539682539682539682539682539682539682539682 :850

53968253968253968253968253968253968253968253968253 :900

96825396825396825396825396825396825396825396825396 :950

82539682539682539682539682539682539682539682539682 :1000

5396825396

sumB = 57 &
( 2341 / 2520 )

sumB/10 = 5 & ( 19981 / 25200 )

5.792896825396825396825396825396825396825396825396 :50

82539682539682539682539682539682539682539682539682 :100

53968253968253968253968253968253968253968253968253 :150

96825396825396825396825396825396825396825396825396 :200

82539682539682539682539682539682539682539682539682 :250

53968253968253968253968253968253968253968253968253 :300

96825396825396825396825396825396825396825396825396 :350

82539682539682539682539682539682539682539682539682 :400

53968253968253968253968253968253968253968253968253 :450

96825396825396825396825396825396825396825396825396 :500

82539682539682539682539682539682539682539682539682 :550

53968253968253968253968253968253968253968253968253 :600

96825396825396825396825396825396825396825396825396 :650

82539682539682539682539682539682539682539682539682 :700

53968253968253968253968253968253968253968253968253 :750

96825396825396825396825396825396825396825396825396 :800

82539682539682539682539682539682539682539682539682 :850

53968253968253968253968253968253968253968253968253 :900

96825396825396825396825396825396825396825396825396 :950

82539682539682539682539682539682539682539682539682 :1000

539682539 ok

According to the extendable feature of FORTH, all kinds
of number system are able to add into the ABC FORTH. I took this feature successfully
designed out my personal using floating point number system in my 64 bits ABC
FORTH.

**5 workers exposed to radiation at Japan nuclear lab**

·

**By****MARI YAMAGUCHI, ASSOCIATED PRESS**
TOKYO — Jun 7, 2017, 10:48 AM ET

Five workers at a Japanese nuclear
facility that handles plutonium have been exposed to high levels of radiation
after a bag containing highly radioactive material apparently broke during an
equipment inspection, the Japan Atomic Energy Agency said Wednesday.

The incident occurred Tuesday at its Oarai Research &
Development Center, a facility for nuclear fuel study that uses highly toxic
plutonium. The cause of the accident is under investigation, the state-run
agency said. It raised nuclear security concerns as well as questions about
whether the workers were adequately protected.
The agency said its initial survey found contamination inside
the nostrils of three of the five men, a sign they had inhaled radioactive
dust. All five were also found to be contaminated on their limbs after removing
protective gear and taking a shower, which would have washed off most
contamination.

Agency spokesman Masataka Tanimoto said one of the men had high
levels of plutonium exposure in his lungs. The worker, in his 50s, had opened
the lid of the container when some of the 300 grams (10 ounces) of plutonium
and uranium in the broken bag flew out.

Internal exposure poses a bigger concern because of potential
cancer-causing risks. The man's exposure, 22,000 Becquerels, could mean the
effect on his lungs may not be immediately life-threatening but would add up
over time, and he will need to be regularly monitored, said Makoto Akashi, a
doctor at the National Institute of Radiological Sciences, where the workers
are being treated.

Nuclear Regulation Authority Chairman Shunichi Tanaka blamed
work routine complacency as a possible cause. Regulators have started
investigating possible violations of safety standards at the facility.

JAEA has a poor safety record at Monju, a plutonium-burning fast
breeder reactor that it oversees. The government recently decided to scrap
Monju, which suffered a major accident in 1995 and has since hardly operated.

Japan's possession of large plutonium stockpiles, from the
country's struggling nuclear spent-fuel recycling program, has faced
international criticism. Critics say Japan should stop extracting plutonium,
which could be used to develop nuclear weapons.

To reduce the stockpile, Japan plans
to burn plutonium in the form of MOX fuel — a mixture of plutonium and uranium
— in conventional reactors. But the restarting of halted nuclear plants has
proceeded slowly amid persistent anti-nuclear sentiment since the 2011
Fukushima nuclear reactor meltdown caused by a massive earthquake and tsunami.

http://abcnews.go.com/Technology/wireStory/workers-exposed-radiation-japan-nuke-lab-47880726

這篇美國ABC 新聞的報導，向全世界公告日本一直在從事於惡毒的鈽提取研究，目標是造原子彈。

三天前，20170607星期三，東京附近的日本Oarai
鈽燃料研發中心發生重大意外。

五名外行人在沒有防護設施的情況下，打開一個隨便只使用兩層塑料袋，裝運300公克的鈽鈾混裝桶，結果造成可怕的鈽內曝露重大事故，日本一直在亂搞鈽提煉之事便傳揚開來。

日本提煉乏燃料中鈽的研究，主要就是要取得原子彈原料鈽239，但一直騙世人說是要發展鈽鈾混合燃料的快中子原子爐。

福島熔毀的原子爐，就是日本硬在已使用35年的老舊原子爐中，強裝鈽鈾燃料丸所造成的。這個重大事故令日本終止此項發展一段時日，現在又故態復萌，惡劣之至。

1995年，這個機構也曾發生處理鈽時超臨界意外事故，當場死了好幾個人，那是形同一枚爛原子彈當場爆炸的核子事故，快中子原子爐的計畫也被叫停好幾年。現在，又開始亂搞了。

美國軍國主義思想意圖扶植日本軍國主義侵略中國，才允許日本這樣亂搞。現在國際原子能總署的頭頭，就是美國安排的一個日本人魁儡，專門配合美國人辦事。

這個名叫IAEA的機構，經常欺騙全世界，胡扯有關核子方面的訊息，伊拉克戰爭莫須有的理由，就由IAEA發出。

這個IAEA也是當初強迫台灣毀掉所有和平用途研究用原子爐的美國打手，我是直接當事人，熟知一切。

再度見到美、日亂整的訊息，令人氣憤，因此，我不惜浪費時間為文眾告世人。

日本必須關閉所有的鈽提取設施與研究。

發電廠用過的乏燃料內沒有適合造原子彈的鈽，主因就是內含轉化過度的鈽242，此物只吃中子，不貢獻分裂滋生反應所需的條件。若非如此，台電所有的乏燃料都能拿來煉出原子彈。日本明知不該為而硬為，原因無它，就是想搞原子彈。

全世界必須制止日本人繼續亂來，否則就該聯合起來滅掉整個日本的人種，才能永絕後患，才能為全世界帶來真正的和平。

***************************************************************

薄弱的百姓，眼含悲慘深沉的無奈，背負一個痴肥撈錢卻高喊病態正義的政權。

丹麥雕塑家 Jens Galschiot 感性雕塑，充份代表了台灣人民今日的處境。

"An obese, morbid justice, being carried by a miserable, thin people, with deep eyes."

Sensational sculpture by Danish Jens Galschiot.

It is fully described the situation of today's Taiwanese.

***************************************************************

薄弱的百姓，眼含悲慘深沉的無奈，背負一個痴肥撈錢卻高喊病態正義的政權。

丹麥雕塑家 Jens Galschiot 感性雕塑，充份代表了台灣人民今日的處境。

"An obese, morbid justice, being carried by a miserable, thin people, with deep eyes."

Sensational sculpture by Danish Jens Galschiot.

It is fully described the situation of today's Taiwanese.