Directorio de programación de Erlang
1.1 Hoja de ruta
1.2 Salida oficial
1.3 Gracias
Capítulo 2 Introducción
2.1 Descripción general
2.1.1 Etapa 1: Abrumado.
2.1.2 La segunda etapa: un primer vistazo a la puerta.
2.1.3 Etapa 2.5: Mirar el esquema y no pedir soluciones.
2.1.4 La tercera etapa: facilidad de uso
2.1.5 Lo más importante es
2.2 Instalación de Erlang
2.2 .1 Versión de distribución binaria
2.2.2 Creando Erlang desde el código fuente
Usando CEAN
2.3 Código de este libro
2.4 Iniciando el shell
2.5 Operaciones con enteros simples
2.6 Variables
2.6.1 Las variables permanecen sin cambios
2.6.2 Coincidencia de patrones
2.6.3 ¿Por qué la asignación única favorece la escritura de código de mayor calidad?
2.7 flotadores
2.8 átomos
2.9 tuplas
Crear una tupla
2.9.Extraer valores de campo. de tuplas
2.10 Lista
2.10.1 Términos
2.10.2 Lista de definiciones
2.10.3 Extracción de elementos de una lista
2.11 Cadenas
2.12 Coincidencia de patrones nuevamente
Capítulo 3 Programación secuencial
3.1 Módulo
3.2 Sistema de compras - Capítulo Avanzado
3.3 Funciones con el mismo nombre pero diferentes usos
3.4 Diversión
3.4.1 Funciones con diversión como parámetro
p>3.4.2 La función de devolver diversión
3.4.3 Defina su propio control de proceso abstracto.
3.5 Procesamiento simple de listas
3.6 Análisis de listas
3.6.1 Clasificación rápida
3.6.2 Tuplas de Pitágoras III
3.6.3 Modificar palabras
3.7 Expresiones aritméticas
3.8 Afirmaciones
3.8.1 Secuencias de afirmaciones
Ejemplos de afirmaciones
3.8.3 Autenticidad de aserciones verdaderas
3.8.4 Funciones de aserción obsoletas
3.9 Registros
Crear y actualizar registros
3.9.2 Extraer valores de campo de registros
3.9.3 Coincidencia de patrones de registros en funciones
3.9.4 Los registros son solo metagrupo de disfraces.
3.10 expresión caso/if
3.10.1 Expresión de ejemplo
3.10.2 expresión if
3.11 En orden natural Crear una lista .
3.12 Acumulador
Capítulo 4 Excepciones
4.1 Excepciones
4.2 Lanzar excepciones
4.3 Intente... capture
4.3.1 versión abreviada
4.3.2 Convención de programación usando try...capture
4.4 capture
4.5 Mejorar error mensajes
4.6 Pruebe...capte el estilo de programación
4.6.1 Programas que a menudo devuelven errores.
4.6.2 Programas con baja probabilidad de error
4.7 Detectar todas las excepciones posibles
4.8 Estilos de manejo de excepciones antiguos y nuevos
4.9 Pila Seguimiento
Capítulo 5 Programación secuencial avanzada
5.1 BIF
5.2 Datos binarios
5.3 Sintaxis de bits
5.3 .Embalaje y desembalaje de colores de 1 bit
5.3.2 Expresiones gramaticales de bits
5.3.3 Ejemplos avanzados de gramática de bits
5.4 Aspectos destacados de pequeños problemas
Se aplica 5.4.1
Atributos
Expresión de bloque
Booleano
Expresión booleana
Conjuntos de caracteres
Comentarios
5.4.8 Planificación de recursos
Caracteres de escape
5.4.10 Expresiones y secuencias de fórmulas de expresiones
5.4.11 Referencia funcional
5.4.12 Archivos incluidos
Operadores de lista ++ y -
5.4.4 Macros
Uso de coincidencias. operadores en patrones
5.4.16 Tipos numéricos
Prioridad del operador
5.4.18 Diccionario de tecnología
Referencias
Expresiones booleanas en cortocircuito
5.4.21 Expresiones de comparación
Variables subrayadas
Capítulo 6 Compilación y ejecución de programas
6.1 Inicio y Detener Erlang Shell
6.2 Configurar el entorno de desarrollo
6.2.1 Configurar la ruta de búsqueda del cargador de archivos.
6.2.2 Ejecutar comandos por lotes al iniciar el sistema.
6.3 Varias formas diferentes de ejecutar un programa
6.3.1 Compilar y ejecutar en Erlang Shell.
6.3.2 Compile y ejecute en el símbolo del sistema.
6.3.3 Ejecutar el programa como un script.
6.3.4 Programación usando parámetros de línea de comando
6.4 Uso de makefile para compilación automática
6.4.1 Generación de plantillas de archivos
Personalizar el Plantilla makefile
6.5 Edición de comandos en Erlang Shell
6.6 Resolver un punto muerto del sistema
6.7 Cómo lidiar con fallas
6.7.1 Indefinido /código faltante
6.7.2 El archivo MAKE no funciona.
El shell 6.7.3 no responde.
6.8 Ayuda
6.9 Entorno de depuración
6.10 Volcado de memoria
Capítulo 7 Concurrencia
Capítulo 8 Capítulo Concurrente Programación
8.1 Primitivas de concurrencia
8.2 Ejemplo simple
8.3 Introducción al cliente/servidor
8.4 Requisitos para crear un proceso ¿por cuánto tiempo?
8.5 recepción con tiempo de espera
8.5.1 solo recepción con tiempo extra.
8.5.2 Recepción con tiempo de espera de 0
8.5.3 Utilizar tiempo de espera infinito para recibir.
Implementación de un temporizador
8.6 Recepción selectiva
8.7 Proceso de registro
8.8 Cómo escribir programas concurrentes
8.9 Técnica de recursividad de cola
8.10 Iniciar el proceso con MFA
8.11 Ejercicio
Capítulo 9 Manejo de errores en programación concurrente
9.1 Vincular proceso
9.2 controlador on_exit
9.3 Manejo remoto de errores
9.4 Detalles del manejo de errores
9.4.1 Modelo de programación de salida de captura.
9.4.2 Captura de señales de salida (capítulo avanzado)
9.5 Primitivas de manejo de errores
9.6 Conjunto de procesos de enlace
9.7 Monitorear p>
9.8 Proceso de supervivencia
Capítulo 10 Programación distribuida
10.1 Servicio de nombres
10.1.1 Paso uno: Servicio de nombres simple.
10.1.2 Paso 2: En la misma máquina, el cliente se ejecuta en un nodo y el servidor se ejecuta en el segundo nodo.
10.1.3 Paso 3: Deje que el cliente y el servidor se ejecuten en diferentes máquinas en la misma LAN.
10.1.4 Paso 4: Ejecute el cliente y el servidor en diferentes hosts en Internet.
10.2 Primitivas distribuidas
10.3 Bibliotecas utilizadas en programación distribuida
10.4 Sistemas con protección de cookies
10.5 Modo de interfaces distribuido basado en conjuntos
10.5.1 lib_chan
10.5.2 Código del servidor
Capítulo 11 IRC Lite
11.1 Diagrama de secuencia de mensajes
11.2 Interfaz de usuario
11.3 Programa cliente
11.4 Componentes del lado del servidor
11.4.1 Controlador de chat
11.4.2 Chat Servidor
11.4.3 Administrador de grupo
11.5 Programa en ejecución
11.6 Código fuente del programa de chat
11.6.1 Cliente de chat
11.6.2 Configuración de Lib_chan
11.6.3 Controlador de chat
11.6.4 Servidor de chat
11.6.5 Grupo de chat
11.6.6 Ventana de entrada y salida
11.7 Deportes
Capítulo 12 Tecnología de interfaz
12.1 Puerto
p>12.2 Agregar interfaces a programas C externos
12.2.1 Programas C
12.2.2 Programas Erlang
12.3 Puertos abiertos
12.4 Controlador en línea
12.5 Nota
Capítulo 13 Documentos de programación
13.1 Estructura organizativa de la biblioteca
13.2 Lectura Diferentes métodos para recuperar archivos
Lea todos los elementos de datos de Erlang del archivo.
13.2.2 Leer elementos de datos de un archivo uno a la vez.
Lee los datos línea por línea del archivo.
13.2.4 Leer el contenido de todo el archivo en datos binarios.
13.2.5 Leer archivos aleatoriamente
Leer etiquetas ID3
13.3 Diferentes métodos de escritura de archivos
Convertir una cadena de elementos de datos Erlang son escrito en el archivo.
13.3.2 Escribe una línea en el archivo.
13.3.3 Escribe el archivo completo en un solo paso.
13.3.4 Escribir archivos en modo de acceso aleatorio
13.4 Operaciones de directorio
13.5 Consultar atributos de archivos
Copiar y eliminar documento.
13.7 Consejos
13.8 Buscar subprogramas
Capítulo 14 Programación de sockets
14.1 Uso de TCP.
14.1.1 Obtener datos del servidor.
Un servidor TCP simple
14.1.3 Servidor mejorado
14.1.4 Notas
14.2 Lógica de control
14.2.1 Recepción activa de mensajes (sin bloqueo)
14.2.2 Recepción pasiva de mensajes (con bloqueo)
14.2.3 Modo mixto (semibloqueo)
14.3 ¿De dónde vienen las conexiones?
14.4 Manejo de errores de socket
14.5 UDP
14.5.1 El servidor y cliente UDP más simple
14.5.2 Servidor para calcular factorial UDP.
14. 5. 3 Otras consideraciones para el protocolo UDP
14.6 Transmisión de mensajes a múltiples máquinas
14.7 Servidor SHOUTcast
14.7. 1 Protocolo SHOUTcast
14.7.2 Mecanismo de funcionamiento del servidor de transmisión en vivo
14.7.3 Pseudocódigo del servidor de transmisión en vivo
14.7.4 Ejecución del servidor SHOUTcast
14.8 va un paso más allá.
ETS y DETS: Mecanismo de almacenamiento de datos masivos
15.1 Operaciones básicas de tablas
15.2 Tipos de tablas
15.3 Tablas ETS Eficiencia consideraciones
65438+
15.5 Ejemplo de programa ETS
15.5.1 Iterador de índice de tres palabras
15.5.2 Tabla de estructura
p>15.5.3 ¿Qué tan rápido es la construcción de la mesa?
15.5.4 ¿Qué tan rápido es acceder a un formulario?
El ganador de 15.5.5 es...
15.6 DETS
Lo que no mencionamos es la lista de códigos de 15.8
p>
Descripción general de OTP en el Capítulo 16
16.1 Ruta de evolución del programa de servidor general
16.1.1 servidor 1: programa de servidor original.
16.1.2 Servidor 2: Programa de servidor que soporta transacciones.
16.1.3 Servidor 3: Programa de servidor que admite el reemplazo de código activo.
16.1.4 Servidor 4: admite transacciones y reemplazo de código activo.
16.1.5 Servidor 5: Finale
16.2 gen_server se ha iniciado.
16. 2. 1 Paso uno: Determinar el nombre del módulo de devolución de llamada.
16.2.2 Paso 2: Escribir función de interfaz
Paso 3: Escribir una función de devolución de llamada.
16.3 La estructura de la devolución de llamada gen_server
16.3.1 ¿Qué sucede cuando se inicia el programa del servidor?
16.3.2 ¿Qué sucede cuando se llama al programa del servidor?
16.3.3 Llamadas telefónicas y notificaciones
16.3.4 Mensajes locales enviados al servidor
16.3.5 Adiós, bebé (servidor finalizado)
16.3.6 Reemplazo de código activo
16.4 Códigos y plantillas
16.4.1 Plantilla gen_server
16.4.2 Mi banco
Desarrollo adicional de 16.5
Capítulo 17 Memoria: Base de datos Erlang
17.1 Consulta de base de datos
17.1.1 Seleccione todos los datos de la tabla.
17.1.2 Seleccionar datos en la tabla
17.1.3 Seleccionar datos en la tabla según las condiciones.
17.1.4 Seleccionar datos de dos tablas (consulta conjunta)
17.2 Agregar o eliminar datos en la tabla
17.2.1 Agregar una fila.
17.2.2 Eliminar una fila.
17.3 Transacción Mnesia
17.3.1 Cancelar transacción.
17.3.2 Cargar datos de prueba
17.3.3 Función do()
17.4 Guardar datos complejos en tablas
17.5 Tipo de tabla y ubicación
Crear una tabla
17.5.2 Combinaciones comunes de atributos de tabla
Comportamiento de la tabla 17.5.3
17.6 Crear y inicializar la base de datos
17.7 Table Viewer
17.8 va un paso más allá.
17.9 Lista de códigos
Capítulo 18 Creación del sistema OTP
18.1 Procesamiento general de eventos
18.2 Registro de errores
18.2.1 registró un error.
18.2.2 Registro de errores de configuración
18.2.3 Error de análisis
18.3 Gestión de alarmas
18.4 Servicio de aplicaciones
18.4.1 Servicio de números primos
18.4.2 Servicio regional
18.5 Árbol de monitoreo
18.6 Iniciar todo el sistema.
Aplicación 18.7
Organización del sistema de archivos 18.8
Monitor de aplicaciones 18.9
18.10 va un paso más allá.
18.11 ¿Cómo creamos números primos?
Capítulo 19 Introducción a multinúcleo
Capítulo 20 Programación multinúcleo
20.1 ¿Cómo ejecutar de manera más eficiente en una CPU multinúcleo?
20.1.1 utiliza muchos procesos.
20.1.2 Evitar efectos secundarios
20.1.3 Cuellos de botella en la secuencia
20.2 Paralelizar código de secuencia
20.3 Pequeños mensajes, grandes cálculos
20.4 Algoritmo de fusión de mapeo y programa de índice de disco
20.4.1 Algoritmo de fusión de mapeo
20.4.2 Recuperación de texto completo
Operación del indexador
Ejecutar el indexador
Comentarios
Código del indexador
20.5 Crecimiento orientado al futuro
Apéndice a registrar nuestro plan.
Apéndice b Entorno Erlang bajo entorno Microsoft Windows
Apéndice c recursos
Apéndice d aplicación de socket
Apéndice y otros
Apéndice f Referencia de módulos y funciones
Índice