¿Por qué la computadora necesita un lenguaje especial a pesar de que los humanos lo inventaron? ¿Por qué los humanos lo inventaron con un lenguaje diferente, no con el nuestro?

Hay diferentes tipos de idiomas.

El lenguaje que usamos para comunicarnos interpersonalmente se llama lenguaje natural o de nivel superior . Nuestro lenguaje evolucionó simplemente de la interacción y la comprensión mutua y continúa evolucionando. A menudo escuchará que los “puristas” del lenguaje afirman que “el lenguaje se está yendo al baño”, sin embargo, el lenguaje siempre ha estado evolucionando, a menos que uno crea en una visión “creacionista” del lenguaje como perfecto y luego esté sujeto a la “degradación” de un ordenar.

Las máquinas se basan en un principio básico de lógica:

Algo es o no es.

No se podría decir que una afirmación es verdadera y también es falsa. La lógica dicta que sea verdadero o falso, pero no puede ser ambos. En la lógica de máquina, el lenguaje binario es práctico e intuitivamente simple: verdadero o falso, sí o no, 1 o 0.

El “1” podría representarse como un voltaje positivo como 5 V y el “0” podría representarse con cualquier voltaje inferior a 1V. Esta es la única forma en que una máquina va a “comprender” la diferencia entre “verdadero” y “falso”. Muchos de los miles de millones de transistores en una unidad de procesamiento central simplemente actúan como interruptores (activados o desactivados) que sirven como marcadores de posición para cálculos numéricos, almacenados en la memoria de acceso aleatorio (RAM) volátil (se borra cuando se apaga la alimentación).

El sistema numérico binario (bi- = 2) utiliza la base 2, en lugar de nuestro decimal más común (deci- = 10) o el lenguaje base 10. Esta no es una forma intuitivamente simple de contar números o hacer cálculos, a menos que sea una máquina.

Como las máquinas usan lenguaje binario, sería difícil escribir lenguaje de computadora o “código” usando solo 0’s y 1’s.

Los lenguajes de programación de computadoras son más como lenguajes de nivel superior que tienen sentido para nosotros. Este código es convertido por un compilador, convirtiendo el lenguaje de nivel superior (como C ++ y Java) en bytecode . Esto se convierte posteriormente en código de máquina que es 0 y 1, que la máquina puede manejar.

Tan bueno como sería simplemente escribir lo que deseamos que la máquina haga usando nuestro lenguaje de nivel superior en el código, un lenguaje de programación tendrá reglas estrictas de sintaxis y estructura que se requieren para que el compilador convierta el código en algo que la máquina realmente puede procesar. Es por eso que los lenguajes de programación se consideran lenguajes sintéticos . La sintaxis o las reglas que rigen los “significados” del vocabulario y la estructura de las declaraciones dentro del código se crean, inventan, inventan y definen antes de usar el lenguaje, por así decirlo.

Esto difiere del lenguaje natural en que en nuestro lenguaje común, los significados de las palabras y la estructura gramatical no están definidos por una fuente artificial, sino que son procesados ​​por nuestras mentes, basados ​​en nuestro conocimiento tácito del lenguaje.

A pesar de que un programa puede ser escrito de muchas maneras diferentes por personas que trabajan independientemente, para realizar el objetivo final o la tarea, las diferentes versiones que utilizan el código original aún producirán el mismo resultado, siempre que todos los codificadores sigan las reglas de sintaxis de el idioma para funcionar correctamente, o en absoluto. Muchas personas pueden escribir un programa que se utiliza como herramienta para realizar una tarea o función específica. Es por eso que elegir plagio en el código es más fácil de lo que uno pensaría. También es fácil elegir el plagio escrito en idiomas de nivel superior, como en los ensayos. Debemos seguir las reglas de sintaxis, pero escribir algo original requiere un cierto esfuerzo.

Una computadora es una máquina. El lenguaje humano es extremadamente complicado y solo ahora nos quedamos para ver computadoras que pueden procesar la comunicación básica en lenguaje humano. No hay nada inteligente en las computadoras por sí mismas; en realidad, no es más fácil hacer que una computadora entienda su discurso que hacer un automóvil o una licuadora que pueda hacer lo mismo. De hecho, es mucho más difícil debido a las complejas tareas que realizan las computadoras, no solo encender y apagar o ir a una velocidad o dirección particular. Todo en una computadora finalmente se descompone en 1s y 0s: encendido y apagado. La inteligencia artificial que puede dar sentido a las palabras tiene que construirse sobre esta base.

Los lenguajes de computadora son “difíciles” de aprender para las personas, pero el lenguaje humano es mucho más complejo.

Evolución.

Estás viendo el estado actual del lenguaje humano y lo estás comparando con las computadoras.

El primer lenguaje humano no era tan complejo como lo es hoy: con lo que está comparando las computadoras. Wayy, wayyy, cuando el lenguaje estaba en su infancia, “Ogg” un hombre de las cavernas usaba gruñidos y gemidos para expresarse. Eso evolucionó en las palabras, sonidos articulados, que los humanos han aceptado como una forma de expresar un pensamiento. Las palabras habladas se convirtieron en representaciones escritas de las expresiones que se hablaron. La mejor estimación es que esto tomó 200,000 años.

Las computadoras no son humanos. Ni por asomo. Aunque hay formas de tratar de correlacionar la similitud de los dos, el cerebro humano es mucho más complejo, aunque puede medirse directamente neurona versus célula de memoria, una neurona hace más de una célula de memoria.

El cerebro humano tiene una complejidad entre sus 100 mil millones de neuronas que le permite procesar sonidos, vista, tacto, gusto y olfato. Si le pido a una persona que me entregue esa taza sobre la mesa.

Al instante, se coordina una coordinación entre lo que se solicitó, la vista de las personas para comprender la distancia al objeto adecuado, la mejor manera de accionar los brazos, las manos y la presión adecuada al acercarse a la copa se coordina para hacer lo que se les pidió. Finalmente, un bebé humano crecerá para poder comprender estas solicitudes.

La computadora todavía está en un estado de evolución. La primera computadora era menos capaz que “Ogg” en el lenguaje. Pero muy talentoso haciendo matemáticas. Extraña dicotomía. Se basa en el hecho de que la máquina de la computadora fue inventada para hacer matemáticas. No puedo predecir dónde habría estado la computadora si se hubiera inventado para “hacer” el lenguaje humano, pero esa no era la necesidad.

La necesidad de que la computadora se construyera sobre circuitos electrónicos significaba que todo lo que podía procesar estaba encendido + apagado. 1 + 0. Dos estados diferentes. Esto fue y sigue siendo la restricción de los circuitos electrónicos, especialmente durante los primeros días del diseño de computadoras.

Los “idiomas especiales” surgieron de la necesidad de traducir la complejidad de 200,000 años de evolución del lenguaje humano a uno que tuviera dos estados. El sistema operativo (lenguaje especial) de una computadora es necesario para convertir millones y miles de millones de estados de encendido / apagado en algo que un humano puede entender.

Entonces, aunque un lenguaje de programación como c ++ o python parece áspero, se consideran lenguaje de alto nivel en comparación con el lenguaje ensamblador que está muy cerca de la programación al ingresar 1 y 0.

Las computadoras necesitan un lenguaje especial porque están construidas alrededor de la restricción que plantea el circuito electrónico. El software está evolucionando, lo que hace que esa restricción parezca más humana.

Es bastante simple: la computadora es un dispositivo matemático.

Emula la realización de operaciones matemáticas (como sumar / restar / multiplicar / dividir, y una capacidad de prueba. La operación agregada es un salto). Como dispositivo matemático, solo puede llevar a cabo pasos matemáticos, uno tras otro. Usando las operaciones de prueba / salto, puede ir a otros pasos cuando las condiciones matemáticas lo requieran.

Todos los lenguajes de programación son solo una notación matemática.

Las diferentes anotaciones están dirigidas a diferentes tipos de problemas que hacen que sea más fácil expresar soluciones para esos problemas.

Lo que lo hace difícil es que las personas no son buenas en operaciones matemáticas. Los lenguajes utilizados para escribir programas están diseñados para ser precisos … que los lenguajes humanos no lo son.

Los lenguajes humanos son vagos e imprecisos. Esto facilita tener un programa correcto … eso no funciona porque la máquina no está usando el mismo idioma.

Los lenguajes humanos son al mismo tiempo terriblemente imprecisos y altamente redundantes. Fundamentalmente, AI no ha desarrollado el nivel de comprensión que le permita traducir las divagaciones o el propietario de un negocio en código. Se necesita gente altamente capacitada y mucho esfuerzo para hacerlo.

En cuanto a los esfuerzos para crear lenguajes humanos y legibles, el primero fue COBOL y es efectivo, pero también es a tal nivel que los empresarios no pueden trabajar con él.

Hay varios idiomas humanos, ¿a qué te refieres?

Déjame preguntarte: ¿por qué escribes 2 + 2 = 4 y no dos más dos es igual a cuatro?

¿Por qué las matemáticas también tienen su propio lenguaje?

Mira, inventamos estos lenguajes porque son concisos y mucho más expresivos dado algún dominio.

Porque si un idioma no es común, significa que es un idioma nativo.

El idioma nativo es más eficiente por su alcance. Por ejemplo:

  std :: shared_ptr  ax = std :: make_shared  ();

esta línea de código tomaría decenas de páginas si se escribiera en el idioma hablado diariamente y aún más para los idiomas nacionales de algunos países.