Standard Pascal/es
Bahasa Indonesia · Deutsch · English · Español · Français · Português · Suomi · Русский · العربية · 中文(中国) · 日本語
En 1974, el creador del lenguaje Pascal, Niklaus Wirth escribió un libro con Kathleen Jensen, titulado Pascal User Manual and Report publicado por Springer-Verlag. Este libro se convirtió en un estándar de facto para el lenguaje Pascal. En 1983, la Organización Internacional de Normas (ISO) formalizó la norma de facto como ISO 7185:1983. En 1990 ISO lanzó una versión actualizada - ISO 7185 :1990 - que no introdujo ningún concepto nuevo, pero borró ambigüedades y corrigió errores que estaban en la versión anterior. La norma ISO 7185 se conoce como Standard Pascal. El estándar define el nivel mínimo que un compilador Pascal debe admitir para ser un verdadero compilador del lenguaje Pascal.
Palabras reservadas
Las siguientes son las palabras clave estándar (denominadas símbolos de palabra en la norma ISO 7185) que todos los compiladores deben admitir:
- and
- array
- begin
- case
- const
- div
- do
- downto
- else
- end
- file
- for
- function
- goto
- if
- in
- label
- mod
- nil
- not
- of
- or
- packed
- procedure
- program
- record
- repeat
- set
- then
- to
- type
- until
- var
- while
- with
Símbolos
Los siguientes símbolos (a los que la norma se refiere como símbolos especiales) también forman parte del lenguaje:
- + (más)
- - (menos)
-
- ([[*|asterisco]])
- / (barra)
- = (igual)
- < (menor a)
- > (mayor a)
- [ (corchete abre)
- ] (corchete cierra)
- . (punto)
- , (coma)
- (dos puntos)
- ; ([[;|punto y coma]])
- ↑ (flecha arriba)
- ( (paréntesis abre)
- ) (paréntesis cierra)
- <> (distinto que)
- <= (menor o igual a)
- >= (mayor o igual a)
- = (named se convierte)
- .. (rango)
Funciones
Todas las funciones definidas por Standard Pascal se implementan en Free Pascal en la unidad System de la biblioteca estándar Runtime Library.
Funciones aritméticas
| Función | Descripción |
|---|---|
| abs(x) | Calcula el valor absoluto de x |
| arctan(x) | Devuelve el arco tangente de x, que puede ser cualquier tipo Real. El ángulo resultante está en unidades radiales. |
| cos(x) | Calcula el coseno del ángulo x (radianes) |
| exp(x) | Exp devuelve el exponente de x, p.e.: el número e elevado a la potencia de x |
| ln(x) | devuelve el logaritmo natural del parámetro Real x debiendo x debe ser positivo. |
| sin(x) | Calcula el seno del ángulo x (radianes) |
| sqr(x) | Calcula el cuadrado de x |
| sqrt(x) | Calculat la raíz cuadrada de x debiendo x ser positivo. |
Funciones de transferencia
| Función | Descripción |
|---|---|
| round(x) | Redondea un valor del tipo Real a su valor entero más cercano, devuelve un entero. |
| trunc(x) | Devuelve un entero (Longint) que es la parte entera de x siendo x del tipo Real. |
Funciones Ordinales
| Función | Descripción |
|---|---|
| chr(x) | Devuelve el valor del tipo caracter (char) de x siendo x del tipo byte. |
| ord(x) | Devuelve el valor ordinal de una variable (x) del tipo ordinal. |
| pred(x) | Devuelve el elemento previo de un tipo ordinal. |
| succ(x) | Devuelve el siguiente elemento de un tipo ordinal. |
Funciones Booleanas
| Función | Descripción |
|---|---|
| eof(f) | Chequea si es el fin del archivo f. |
| eoln(f) | Chequea si es el fin de línea del archivo de texto f. |
| odd(x) | Devuelve True si X es impar o False en caso contrario. |
Procedimientos
Los procedimientos definidos por Standard Pascal se implementan en Free Pascal en la unidad System unit de la librería estándar Runtime Library.
Procedimientos para el manejo de archivos
| Procedimiento | Descripción |
|---|---|
| get(f) | |
| page() | |
| put(f) | |
| read | Lee desde un archivo de texto o stdin a una variable. |
| readln | Lee desde un archivo de texto a una variable y se sitúa en la siguiente línea. |
| reset(f) | Abre un archivo en modo lectura. |
| rewrite(f) | Abre un archivo en modo escritura. |
| write | Escribe una variable o una cadena de texto (string) literal en un archivo de texto o stdout. |
| writeln | Escribe una variable o una cadena de texto (string) literal en un archivo de texto o stdout y añade una nueva línea. |
Procedimientos de asignación dinámicos
| Procedimiento | Descripción |
|---|---|
| dispose(q) | Libera la memoria señalada por q, que fue asignada con una llamada a New. |
| dispose(q,k1...kn) | |
| new(p) | Asigna una nueva instancia del tipo al que apunta p y coloca la dirección en p. |
| new(p,c1...cn) | |
Procedimientos de transferencia
| Procedimiento | Descripción |
|---|---|
| pack() | Crea una matriz empaquetada (packed array) a partir de una matriz normal. |
| unpack() | Crea una matriz desempaquetada (unpacked array) a partir de una matriz empaquetada. |
Extensiones
Hay palabras clave adicionales que no forman parte técnicamente del lenguaje Standard Pascal, pero que FPC utiliza para funciones adicionales, como la implementación de objetos, la compatibilidad con los conceptos de recuperación de errores expuestos por C++, o para proporcionar compatibilidad con Borland Pascal y los compiladores Pascal anteriores. Estas palabras clave incluyen:
implementation · finally · try · unit.
Types (Tipos)
Existen tipos type estándar:
integer · smallint · longint · real · boolean · string · char · byte
Modos soportados por Free Pascal
Free Pascal es compatible con ISO 7185 Standard Pascal con la opción de línea de comandos del modo del compilador -Miso o con la directiva del compilador {$mode ISO} en el código fuente. Desde la versión 3.0.0 tiene soporte de ISO 7185. Está previsto que tenga un modo de soporte ISO/IEC 10206 Extended Pascal en futuras versiones de Free Pascal.
Enlaces externos
- Standard Pascal, reference information about the ANSI ISO 7185 standard.
- ISO 7185:1990, official normative version of the Pascal standard.
- ISO/IEC 10206:1991: Extended Pascal standard
From the Free Pascal wiki, page "Standard Pascal/es", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
