display[a_] := 
        Show[Graphics[Raster[Reverse[Abs[1 - a]]]], 
          AspectRatio -> 1];

    life100 := 
        Compile[{{m, _Integer, 2}}, 
          Module[{a}, a = Table[0, {100}, {100}]; 
            Do[Do[
x = 
                  m[[i - 1, j - 1]] + m[[i, j - 1]] + 
                    m[[i + 1, j - 1]] + 
m[[i - 1, 
                        j]] + 
                    m[[i + 1, j]] + 
m[[i - 1, 
                        j + 1]] + m[[i, j + 1]] + 
                    m[[i + 1, j + 1]]; 
a[[i, j]] = 
                  UnitStep[3 - x] 
                    UnitStep[
                      x - 2] (DiscreteDelta[x - 2] m[[i, j]] + 
                        DiscreteDelta[x - 3]), {j, 2, 99}], {i, 2, 99}]; 
            Return[a]]];

    lifeInit[n_] := 
      Table[Table[Random[Integer, {0, 1}], {  n}], {n}]

a = lifeInit[100];

display[a]

Do[a = life100[a]; display[a], {30}]

small = lifeInit[10];

small // TableForm

display[small]