HTML5

HTML5 es la próxima generación HTML y será el estándar para HTML, XHTML y HTML DOM, aunque todavía no es una recomendación W3C. Actualmente se trabaja en el estándar pero ya se puede utilizar debido a que los navegadores más modernos ya soportan muchas de las nuevas características.
HTML5 mejora la interoperabilidad y reduce los costes de desarrollo mediante normas precisas sobre cómo manejar todos los elementos HTML, y cómo recuperarse de los errores.
Algunas de las nuevas características de HTML5 son: audio embebido, video, gráficos, almacenamiento local y documentos interactivos. HTML5 también contiene nuevos elementos como <nav>, <header>, <footer> y <figure>.

En los siguientes enlaces hay información precisa de cómo utilizar las nuevas características de este lenguaje
http://msdn.microsoft.com/es-es/ie/hh749019
http://www.desarrolloweb.com/articulos/aprende-html5-5-minutos.html
http://www.w3schools.com/html/html5_intro.asp

https://developer.mozilla.org/en-US/docs/Web/HTML/Element

 

El poder de los lenguajes de programación

¿Qué aspectos deben incluirse para garantizar que, una vez diseñado e implantado un lenguaje de programación, no descubramos que existen problemas cuyas soluciones no pueden especificarse con el lenguaje, y que sí podrían haberlo sido si hubiéramos implantado una versión ampliada del lenguaje?

La estrategia va a ser desarrollar un sencillo lenguaje de programación esencial que permita, suponiendo verdadera la tesis de Church-Turing, expresar una solución para cualquier problema que puede resolverse de manera algorítmica.

Un lenguaje de programación esencial

  • El único tipo de datos que se requiere es el entero no negativo. En un computador digital moderno todo elemento de datos se representa como un entero no negativo, aunque el lenguaje de alto nivel pueda disfrazar esta realidad.
  • Tenemos también dos enunciados de asignación:
incr valor; //Incrementa en uno

decr valor; //Decrementa en uno hasta llegar a 0, una vez es 0 sigue en 0
  •  Finalmente tenemos dos enunciados de control:
while valor ≠ 0 do;
        .
        .
       end;

Este es nuestro lenguaje de programación esencial. Es muy sencillo y, por lo tanto, la primera meta es incorporar enunciados más poderosos que pueden simularse con secuencias de enunciados esenciales.

Por ejemplo:

  • clear x;
while x ≠ 0;
    decr x;
end;
  • x ← y;
clear aux;
clear x;
while y≠ 0 do;
   incr aux;
   decr y;
end;
while aux ≠ 0 do;
   incr x;
   incr y;
   decr aux;
end;
  • z ← x + y
z ← x;
aux ← y;
while aux ≠ 0 do
   incr z;
   decr aux;
end;
  • z ← x – y = {x – y si x ≥ 0;    0 en otro caso
z ← x;
aux ← y;
while aux ≠ 0 do
   decr z;
   decr aux;
end;
  • z ← x × y
clear z;
aux ← y;
while aux ≠ 0 do
   z ← z + x;
   decr aux;
end;
  • z ← x ÷ y
clear z;
w ← x - y;
while w ≠ 0 do
   incr z;
   w ← w - y;
end;

No se ha diseñado ningún lenguaje de programación que tenga mayor poder expresivo que nuestro sencillo lenguaje (aunque los lenguajes más elaborados que se emplean en la actualidad son obviamente superiores en cuanto a legibilidad)

J.G. Brookshear, Teoría de la Computación. Lenguajes formales, autómatas y complejidad. Addison Wesley Iberoamericana (1993).