¿Cuáles son algunos principios de la metafísica que se aplican a la informática y la programación?

1. No hay hechos, solo conjuntos de hipótesis que se toman provisionalmente con una mayor o menor cantidad de confianza.

¿Crees que tu programa se compiló sin error? Eso supone que su compilador funcionó, y eligió el compilador que funciona, y su kernel / tarjeta gráfica / monitor conspiró para darle el resultado correcto, y que está interpretando ese resultado correctamente, y por cierto solo compiló lo que pensaba usted compiló?

2. Ni siquiera las mediciones son inmunes a la regla # 1.

Entonces usaste un contador de rendimiento de hardware. ¡Eso es tan dulce! ¿Estaba midiendo la ejecución del espacio de usuario, la ejecución del kernel o ambas? ¿Recordó fijar el proceso a un núcleo, y si lo hizo, lo hizo correctamente y logró medir el núcleo correcto? ¿Ha tenido en cuenta la reinversión? ¿Patinar? ¿Interferencia de otros procesos? El mapeo de páginas virtual a físico no determinista: usted pensó que medir esta ejecución le daría información sobre una ejecución posterior, ¿verdad? ¿Explicó el no determinismo del modo turbo? ¿Disco IO y no determinismo de red? ¿Es correcta la documentación? ¿El hardware implementó la documentación correctamente? ¿Su hardware todavía está en condiciones de fábrica?

3. No estamos tratando de llegar a la verdad; estamos tratando de llegar a modelos simplificados que sean útiles.

Como dijo George EP Box: todos los modelos están equivocados, pero algunos son útiles. ¿Es la computadora una máquina determinista que usa tiempo discreto? ¿En la computadora fundamentalmente no determinista y utiliza tiempo continuo? He visto modelos exitosos que usan ambas suposiciones (al igual que los químicos supondrán alegremente que los átomos son partículas puntuales que no interactúan al explicar la Ley del Gas Ideal).

4. Pero a pesar de todo eso, no somos nihilistas.

Excepto por el extraño jueves.

Hay dos ideas que actúan como base de la informática. Uno presenta la arquitectura central de las computadoras, y otro conduce a sistemas electrónicos para la computación.

La lógica booleana , y su representación verdadero-falso de cualquier declaración es una de ellas. La máquina de Turing , un mapa formal de Analytical Engine por Charles Babbage es la segunda idea.

Entonces, ¿cómo se conectan estas ideas con la metafísica?

Lógica Booleana y Metafísica

La conexión entre la lógica booleana y la metafísica / epistemología de Aristóteles es más directa. Así que lo investigaré primero.

La lógica booleana, desarrollada en 1847 por George Boole, sirvió de base para los sistemas informáticos electrónicos iniciales, sumadores medios y completos. Más tarde, condujo a sistemas como multiplexores. Cualquier CPU moderna es esencialmente la combinación de varias operaciones propuestas por Boole, los sumadores y multiplexores desarrollados aún más usando estas operaciones.

Aquí está la declaración de la ley de Aristóteles del medio excluido. “Una cosa no puede tener y no tener las mismas características al mismo tiempo y en el mismo respeto (el agua del grifo está caliente con respecto al agua helada, pero fría con respecto a la lava) “. La declaración se deriva directamente de la metafísica de Aristóteles de una realidad. Establece que hay una realidad , la realidad natural (frente a dos realidades propuestas por Platón y Kant). Y esta realidad no tiene contradicciones . Dado que las computadoras como los humanos organizan el conocimiento, la afirmación también es válida para construir dispositivos informáticos.

Así es como Boole aplicó la ley de Aristóteles del medio excluido. La declaración que informaba correctamente la inclusión de la característica en la cosa, se representaba usando el símbolo Verdadero. La declaración que informaba incorrectamente la inclusión de la característica se representaba usando el símbolo Falso. Además, ideó reglas para combinar estas declaraciones, de forma similar a cómo Aristóteles combinaba silogismos. El resultado fue “y”, “o”, y “no” operaciones en una o más declaraciones. Estas operaciones fueron la base de las puertas lógicas que se convirtieron en el núcleo de la Unidad Aritmética y Lógica, y la Unidad de Control en dispositivos informáticos.

Con el uso extensivo de palabras clave como if y switch en lenguajes de alto nivel, la lógica booleana y, por lo tanto, la metafísica de Aristóteles también es bastante visible en la programación de aplicaciones.

Máquina de Turing y metafísica

La máquina Essence of Turing captura el estado del sistema y utiliza entradas para calcular el siguiente estado. Hay un concepto equivalente en filosofía que captura este comportamiento. Asegura que el sistema se comporta de acuerdo con su estado, y el estado representa el comportamiento del sistema en el pasado. Ese concepto es “contexto”.

Fuera de contexto, la palabra “estado” puede ser una entidad política o una afirmación individual. Sin embargo, está claro que el “estado” en el párrafo anterior se refiere a la instantánea del sistema, si nos fijamos en el contexto de la máquina de Turing.

En varios niveles en las computadoras, la máquina de estado es el componente esencial para la computación y el procesamiento. Dentro de una sola instrucción como ADD, el bit de acarreo determina el estado del sistema. A nivel de ensamblaje, las instrucciones de salto dependen del estado de la máquina. A nivel del sistema operativo, las funciones están determinadas por estados como el modo kernel o el modo de aplicación. En un entorno servidor-cliente, la comunicación del servidor o el cliente depende de la configuración del otro sistema. Por ejemplo, si un servidor de autenticación como Active Directory se está comunicando con un cliente heredado como Windows NT, se cifrará utilizando un protocolo como MD5 en lugar de AES. La configuración del sistema del cliente es el estado, y el cifrado en el sistema es el comportamiento que depende del estado.

Entonces, ¿cómo se conecta la lógica de la máquina de estados con la metafísica? A diferencia de la lógica booleana, la conexión no es tan directa, pero sí existe.

La ley de identidad de Aristóteles es otra ley fundamental. Establece que “A es A”. Eso es una suma de todas sus características, y por implicación no puede actuar contra su naturaleza. Una grúa no puede levantar más peso del estrés que pueden soportar sus componentes. El taladro no puede excavar más de lo que permite su diseño y fabricación. Del mismo modo, una máquina organizadora de conocimiento no procesa más que cierta velocidad, y en un orden definido.

Por lo tanto, la mente humana o la computadora necesitan almacenar resultados intermedios de cálculos, en lugar de resolver un problema completo en un ciclo. Para los humanos, el orden es algo así como formar percepciones de nuestro entorno utilizando el sistema de órganos sensoriales. Organizar estas percepciones utilizando conceptos básicos como mesa, silla, árbol, green, push, roll, etc. (o formando nuevos conceptos si es necesario). Formando oraciones básicas usando conceptos básicos y algunas observaciones más, como “Empujar tira la pelota”. Formando conceptos de nivel superior usando conceptos básicos, oraciones y algunas observaciones / experimentos más, como movimiento, fricción, etc. Formando oraciones / ecuaciones de nivel superior como “La fricción impide el movimiento” o F = ma. Y usando el proceso iterativamente para llegar a conceptos como la gravedad y principios como “Movimiento elíptico de planetas”. Del mismo modo para las computadoras, tenemos fases de cálculo que se ejecutan en múltiples pasos. Etapas como análisis léxico, análisis, procesamiento de datos analizados, generación de código intermedio, optimización, ejecución iterativa de estas fases y generación de salida final.

Análisis léxico como compilador que organiza palabras en el programa como variables, literales, palabras clave, etc. Además de entradas en la tabla de símbolos. Análisis combinando tokens léxicos en estructuras de datos como árbol, listas enlazadas, gráficos, etc. Procesamiento de datos analizados como búsqueda, clasificación, fusión. Generación de código intermedio como código XML y HTML enviado a través de la red. Optimización que implica acceso a caché o cookies. Y el resultado final es la operación completa en la aplicación o el navegador.

El análisis léxico es similar a los humanos que forman conceptos básicos a partir de percepciones. Los controladores y algunos dispositivos de hardware son como el sistema de órganos sensoriales. Análisis y generación de código intermedio similar a la formación de oraciones básicas y conceptos de nivel superior. Procesamiento de datos analizados similar al pensamiento que hacemos usando oraciones básicas, correlacionando estos con nuestras experiencias pasadas. Optimización que implica la aplicación de aprendizajes del pasado para mejorar el rendimiento de las acciones actuales. Y finalmente, las decisiones que tomamos después de seguir todos los pasos en la cadena conceptual, lo que lleva a una acción similar a la salida del programa. Todo el proceso nuevamente es iterativo.

Esencia metafísica de la máquina de Turing o del ser de la mente humana, el objeto de procesamiento del conocimiento tiene ciertos límites de espacio y velocidad. Y por lo tanto, estos funcionan en un orden definido determinado por fases bien definidas.