Langage autonome

rpl

Programme permettant l'exécution de scripts écrits en RPL/2. Ces programmes peuvent être interprétés ou compilés. Il est possible de lancer ce programme de manière à obtenir une ligne de commande pour une utilisation interactive ou de lui passer des commandes au travers de son entrée standard.


RPL/2(1)                 Manuel de l'utilisateur RPL/2                RPL/2(1)



NOM
       Reverse Polish Lisp/2 version 4.1.6,
       langage  de  haut  niveau semi-compilé extensible par des bibliothèques
       partagées  et  destiné  principalement  aux  calculs  scientifiques  et
       algorithmes complexes.

SYNOPSIS
       rpl [-acdDhilnpPsv] [-A données] [-S script] [-t niveau] [programme]

DESCRIPTION
       Le   séquenceur   rpl   permet  l'exécution  d'un  programme  RPL/2  ou
       l'ouverture d'une session permettant  d'utiliser  ce  langage  en  mode
       interactif grâce à une ligne de commande.

   OPTIONS
       -a     analyse  un  programme et renvoie la sortie du préprocesseur sur
              la sortie standard

       -A     envoie des paramètres de  la  ligne  de  commande  au  programme
              principal

       -c     autorise  la  génération d'un fichier rpl-core à fin de débogage
              dans le cas d'une erreur lors de l'exécution d'un programme;

       -d     permet de déverminer les allocations mémoire internes au  RPL/2.
              Ne pas utiliser si vous ne savez pas ce que vous faites !

       -D     bascule le fonctionnement en daemon;

       -h     présente  brièvement  les  différentes  options  de  la ligne de
              commande;

       -i     lance le séquenceur RPL/2 en mode interactif. Cette  option  est
              incompatible  avec la présence sur la ligne de commande d'un nom
              de programme à exécuter;

       -l     rappelle la licence d'utilisation du séquenceur;

       -n     ignore le signal HUP;

       -p     précompile les scripts avant leur exécution;

       -P     profilage;

       -s     empêche l'ouverture de l'écran initial;

       -S     exécute le script passé sur la ligne de commande;

       -t     passe le séquenceur en mode « trace  ».  Toutes  les  opérations
              internes sont retranscrites sur la sortie standard;

       -v     donne la version du séquenceur.

VALEUR RENVOYÉE
       Le  séquenceur  retourne  une valeur nulle si l'exécution du fichier ne
       provoque aucune erreur, et une valeur non nulle dans le cas contraire.

PRÉREQUIS ET RECOMMANDATIONS
       La  variable   d'environnement   RPL_TMP_PATH   permet   de   specifier
       l'emplacement  des  fichiers  temporaires.  Si cette dernière n'est pas
       positionnée, les répertoires suivants seront utilisés: /tmp,  /var/tmp,
       ./.   Il  est recommandé d'utiliser ce langage avec gnuplot, TeX/LaTeX,
       dvips et gv pour tirer le maximum de ses possibilités graphiques.

CONFORMITÉ
       Le séquenceur RPL/2 est  conforme  au  manuel  corrigé  du  calculateur
       HP-28S  de  Hewlett-Packard  et  au  calculateur HP-28S version 2BB (C)
       1986-1987.   Il  faut  noter  que  certaines  définitions  intrinsèques
       manipulant  des  grandeurs  complexes ne suivent pas les spécifications
       écrites  par  Hewlett-Packard.   Il   s'agit   principalement   de   la
       transposition   (retournant  la  transposée  conjuguée  de  la  matrice
       argument) et du produit scalaire (le  premier  vecteur  étant  conjugué
       avant de calculer la somme des produits terme à terme).

DÉLIMITEURS
       aucun  scalaire, entier ou réel, codé sur un minimum de soixante-quatre
              bits;

       ( )    nombre complexe représenté sur un  minimum  de  cent  vingt-huit
              bits;

       #      entier binaire comptant soixante-quatre bits;

       << >>  définition   utilisateur   ou  équation  en  notation  polonaise
              inverse;

       ' '    équation algébrique ou nom;

       [ ]    vecteur de scalaires;

       [[ ]]  matrice de scalaires;

       <[ ]>  table;

       " "    chaîne de caractères;

       { }    liste regroupant plusieurs objets de types divers. Une liste est
              un objet récursif pouvant contenir d'autres listes;

       /* */  commentaire;

       //     commentaire du délimiteur jusques à la fin de la ligne.

INSTRUCTIONS
       Cette  section  contient  les  différentes  définitions intrinsèques du
       langage. Certaines d'entre elles  possèdent  plusieurs  écritures,  les
       écritures  alternatives  figurant  entre  parenthèses.  Les définitions
       apparaissant entre parenthèses dans une structure sont  quant  à  elles
       optionnelles.   Les  instructions  écrites  en  majuscules  ne sont pas
       sensibles à la casse.

       STRUCTURES DE CONTRÔLE
              IF/THEN/(ELSEIF/THEN)/(ELSE)/END,           IFT,           IFTE,
              SELECT/CASE/THEN/END/(DEFAULT)/END

       REPRISE SUR ERREUR
              CLRERR, ERRM, ERRN, IFERR/THEN/(ELSE)/END

       BOUCLES DÉFINIES AVEC COMPTEUR
              FOR/(CYCLE)/(EXIT)/NEXT, FOR/(CYCLE)/(EXIT)/STEP

       BOUCLES DÉFINIES SANS COMPTEUR
              START/(CYCLE)/(EXIT)/NEXT, START/(CYCLE)/(EXIT)/STEP

       BOUCLES INDÉFINIES
              DO/(EXIT)/UNTIL/(EXIT)/END, WHILE/(EXIT)/REPEAT/(EXIT)/END

       INSTRUCTIONS D'ENTRÉE/SORTIE
              BEEP, CLMF, DISP, INPUT, KEY, PROMPT

       DÉBOGAGE
              CONT, HALT, SST

       MANIPULATION DE LA PILE OPÉRATIONNELLE
              CLEAR,  COPY,  DEPTH, DROP, DROP2, DROPN, DUP, DUP2, DUPN, EDIT,
              OVER, PICK, ROLL, ROLLD, ROT, SWAP

       MANIPULATION DES VARIABLES
              ->,  CLUSR,  PARAMETER,  PRIVATE,  PROTECT,  PURGE,  RCEQ,  RCL,
              RECALL,  SAVE,  SCONJ,  SHARED,  SINV,  SNEG, STATIC, STEQ, STO,
              STO+, STO-, STO*, STO/, STORE, UNPROTECT, VARIABLE, VARS, VISIT,
              VOLATILE

       ARITHMÉRIQUES RÉELLE ET COMPLEXE ET CALCULS ÉLÉMENTAIRES
              +,  -,  *,  /, ^ (**), =, ABS, ARG, C->R, CEIL, CONJ, DECR, DER,
              DFT, EVAL, EXP, EXPM, FACT, FFT,  FLOOR,  FP,  IDFT,  IFFT,  IM,
              INCR,  INT,  INV,  IP,  MANT, MAX, MCLRIN, MIN, MOD, NEG, ->NUM,
              P->R, ->Q, R->C, R->P, RE, RELAX, SIGN, SQ, SQRT,  TAYLR,  XPON,
              XROOT

       CONSTANTES
              e, FALSE, i, infinity, PI, TRUE

       FORMATS
              ENG, FIX, RND, SCI, STD, TRNC

       FONCTIONS LOGIQUES ET ARITHMÉTIQUE BINAIRE
              <, <= (=<), <>, >, >= (=>), ==, %, %CH, %T, AND, ASL, ASR, B->R,
              BIN, CF, DEC, FC?, FC?C, FC?S, FS?, FS?C, FS?S,  HEX,  IN,  NOT,
              OCT,  OR, R->B, RCLF, RCWS, RL, RLB, RR, RRB, SAME, SF, SL, SLB,
              SR, SRB, STOF, STWS, XOR

       FONCTIONS TRIGONOMÉTRIQUES
              ACOS, ASIN, ATAN, COS, D->R,  DEG,  ->HMS,  HMS->,  HMS-,  HMS+,
              R->D, RAD, SIN, TAN

       FONCTIONS LOGARITHMIQUES
              ACOSH, ALOG, ASINH, ATANH, COSH, LN, LNP1, LOG, SINH, TANH

       FONCTIONS SPÉCIALES
              BESSEL, GAMMA

       STATISTIQUES
              CLS,  COLS,  COMB, CORR, COV, DRWS, MAXS, MEAN, MINS, NRAND, NS,
              PCOV, PERM, PSDEV, PVAR, RAND, RCLS, RDGN, RDZ,  S-,  S+,  SCLS,
              SDEV,  SPAR, STOS, SX, SX2, SXY, SY, SY2, TOT, UTPC, UTPF, UTPN,
              UTPT, VAR, XCOL, YCOL

       MANIPULATION DES VECTEURS ET MATRICES
              ->ARRAY (->ARRY), ARRAY-> (ARRY->),  CNRM,  COL+,  COL-,  COL->,
              ->COL,  CON,  COND,  CROSS, CSWP, DET, DIAG->, ->DIAG, DOT, EGV,
              EGVL, GEGV, GEGVL, GET, GETC, GETI,  GETR,  GLEGV,  GREGV,  IDN,
              LCHOL,  LEGV,  LQ, LSQ, LU, MAX, MIN, PUT, PUTC, PUTI, PUTR, QR,
              RANK, RCI, RCIJ, RDM, REGV, RNRM, ROW+, ROW-, ROW->, ->ROW, RSD,
              RSWP, SCHUR, SIZE, SQ, SVD, SVL, TRN, UCHOL

       MANIPULATION DES TABLES
              CRTAB, GET, L->T, PUT, T->L, ->TABLE, TABLE->

       MANIPULATION DES LISTES
              GET,  GETI,  HEAD,  L->T,  ->LIST, LIST->, POS, PUT, PUTI, REPL,
              REVLIST, SIZE, SORT, SUB, T->L, TAIL

       CHAÎNES DE CARACTÈRES
              CHR, CURRENC, LCASE, NUM, POS, RECODE, REGEX, REPL, SIZE,  SREV,
              ->STR, STR->, SUB, TOKENIZE, TRIM, UCASE

       MANIPULATION DES EXPRESSIONS
              OBGET, OBSUB, EXGET, EXSUB

       GESTION DES FICHIERS ET DES SOCKETS
              APPEND, BACKSPACE, CLOSE, CREATE, DELETE, FORMAT, INQUIRE, LOCK,
              OPEN, POLL, READ, REWIND, SYNC, TARGET, UNLOCK, WFLOCK,  WFSOCK,
              WRITE

       SORTIES GRAPHIQUES ET PAPIER
              *D, *H, *S, *W, AUTOSCALE, AXES, CENTR, CLLCD, CR, DEPND, DGTIZ,
              DRAW, DRAX, ERASE, EYEPT,  FUNCTION,  HISTOGRAM,  INDEP,  LABEL,
              LCD->, ->LCD, LINE, LOGSCALE, MARK, NEWPLANE, PAPER, PARAMETRIC,
              PERSIST, PLOT, PLOTTER, PMAX, PMIN,  POLAR,  PPAR,  PR1,  PRINT,
              PRLCD,  PRMD,  PRST,  PRSTC, PRUSR, PRVAR, REDRAW, RES, SCATTER,
              SCALE, SLICE, SLICESCALE, TITLE, WIREFRAME

       BIBLIOTHÈQUES
              EXTERNALS, REMOVE, USE

       GESTION DES PROCESSUS
              ATEXIT, ATPOKE, CLRATEXIT, CLRATPOKE, CLRFUSE, CLRMTX, CLRSMPHR,
              CLRSWI,  CONTINUE,  CRMTX,  CRSMPHR,  CSTOP,  DAEMONIZE, DETACH,
              FUSE, ISWI, MTXLOCK, MTXSTATUS, MTXTRYLOCK,  MTXUNLOCK,  NRPROC,
              PEEK,  POKE,  PROCID,  RCLSWI,  RECV, RFUSE, RSTOP, SCHED, SEND,
              SMPHRDECR,  SMPHRGETV,  SMPHRINCR,  SMPHRTRYDECR,  SPAWN,  STOP,
              STOSWI,  SUSPEND,  SWI, SWILOCK, SWIQUEUE, SWISTATUS, SWIUNLOCK,
              WFACK, WFDATA, WFPOKE, WFPROC, YIELD

       INSTRUCTIONS DIVERSES
              <<, >>, ABORT, ALARM, BACKTRACE, CLRCNTXT,  CONVERT,  COPYRIGHT,
              DATE,  DROPCNTXT, DUPCNTXT, HELP, IMPLICIT, ITRACE, JDATE, KILL,
              KIND,  LAST,  LOCALIZATION,  LOGGER,  MEM,  MEMLOCK,  MEMUNLOCK,
              PSHCNTXT,  PSHPRFL,  PULCNTXT,  PULPRFL, RDATE, RESTART, RETURN,
              SPLASH, SWAPCNTXT, SYSEVAL, TIME, TYPE, VERIFY,  VERSION,  WAIT,
              WARRANTY, WORKDIR

       BASES DE DONNÉES
              SQLCONNECT, SQLDISCONNECT, SQLQUERY

       INSTRUCTIONS DU PRÉPROCESSEUR
              #date,  #define,  #defeval, #else, #endif, #error, #eval, #file,
              #if, #ifdef, #ifeq, #ifndef,  #ifneq,  #include,  #line,  #mode,
              #undef, #warning

ADRESSES UTILES
       http://www.rpl2.fr
              page officielle du RPL/2;

       jkb@systella.fr
              adresse de l'auteur;

       rpl2@rayleigh.systella.fr
              liste  de  diffusion du langage RPL/2 permettant de demander des
              conseils, de proposer de nouvelles fontionnalités, de  rapporter
              des dysfonctionnements...



JKB-Labs                jeudi 19/01/2012, 09:42:16 CET                RPL/2(1)

rplc

Ce programme est le seul de la famille RPL/2 a ne pas être distribué sous la licence CeCILL. Il permet de compiler un programme RPL/2 en un binaire autonome. À l'heure actuelle, il n'est pas rendu disponible au public.

tchebytchev:[~/rpl/rplc-1.0.0] > cat hello.rpl
#!/usr/local/bin/rpl -sp

MAIN
<<
    "Hello, World!" disp
>>
tchebytchev:[~/rpl/rplc-1.0.0] > ./rplc hello.rpl hello
tchebytchev:[~/rpl/rplc-1.0.0] > file hello
hello: ELF 32-bit MSB executable, SPARC32PLUS, V8+ Required, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
tchebytchev:[~/rpl/rplc-1.0.0] > ./hello
+++RPL/2 (R) version 4.0.13 (Monday 03/15/10, 12:57:39 CET)
+++Copyright (C) 1989 to 2009, 2010 BERTRAND Joel
Hello, World!
tchebytchev:[~/rpl/rplc-1.0.0] > 

Bibliothèques partagées

mkrplso


RPL/2(1)                 Manuel de l'utilisateur RPL/2                RPL/2(1)



NAME
       Compile   et  lie  un  module  externe  RPL/C  pour  le  langage  RPL/2
       (DEVELOPPEMENT, RPL/2)

SYNOPSIS
       mkrplso [options] filename


DESCRIPTION
       L'outil mkrplso appelle gfortran. Toutes les options  disponibles  sont
       décrites dans le manuel gfortran.

OPTIONS
       Voir gfortran.

JKB-Labs                jeudi 19/01/2012, 09:42:16 CET                RPL/2(1)

rplcc


RPL/2(1)                 Manuel de l'utilisateur RPL/2                RPL/2(1)



NAME
       Compile  une  routine  C  appelant  une  ou  plusieurs  fonctions RPL/2
       (DEVELOPPEMENT, RPL/2)

SYNOPSIS
       rplcc [options] filename


DESCRIPTION
       L'outil rplc appelle gfortran.  Toutes  les  options  disponibles  sont
       décrites dans le manuel gfortran.

OPTIONS
       Voir gfortran.

JKB-Labs                jeudi 19/01/2012, 09:42:16 CET                RPL/2(1)

rpllink


RPL/2(1)                 Manuel de l'utilisateur RPL/2                RPL/2(1)



NAME
       Effectue  l'édition des liens de programmes C appelant une ou plusieurs
       fonctions RPL/2 (DEVELOPPEMENT, RPL/2)

SYNOPSIS
       rplc [options] filename


DESCRIPTION
       L'outil rpllink appelle gfortran. Toutes les options  disponibles  sont
       décrites dans le manuel gfortran.

OPTIONS
       Voir gfortran.

JKB-Labs                jeudi 19/01/2012, 09:42:16 CET                RPL/2(1)

Outils

rplpp

Ce préprocesseur n'est autre que gpp, un préprocesseur d'usage général adapté au langage RPL/2.

rpltags


RPL/2(1)                 Manuel de l'utilisateur RPL/2                RPL/2(1)



NAME
       rpltags - crée un fichier tags (DEVELOPPEMENT, RPL/2)

SYNOPSIS
       rpltags pathname


DESCRIPTION
       L'outil  rpltags  devrait  être  fournit sur tout système supportant le
       langage RPL/2.

       L'outil rpltags écrit un fichier d'étiquette ou  un  index  des  objets
       présents  dans  un fichier ou un ensemble de fichiers sources spécifiés
       par l'opérande pathname et écrits en RPL/2. Ce fichier est  directement
       utilisable avec un éditeur de type vi.

OPTIONS
       None

JKB-Labs                jeudi 19/01/2012, 09:42:16 CET                RPL/2(1)

Divers

rplawk

En raison de problèmes inhérents à certains systèmes d'exploitation, le RPL/2 utilise sa propre implantation de AWK. Il s'agit de la version de AWK développée par Brian Kernighan et modifiée pour qu'elle ne dépende pas de yacc.

rplconvert

Ce programme permet au RPL/2 d'effectuer des conversions d'unités. Il s'agit de GNU-units dans une version un peu particulière.

rplfile

Le RPL/2 embarque, en raison de problèmes provenant de certaines implantations de file, un utilitaire capable de déterminer le type d'encodage d'un fichier texte. Cet utilitaire est directement issu de l'utilitaire file de NetBSD et des patches de NetBSD permettant de l'utiliser sur des architectures demandant un alignement strict de la mémoire.

rpliconv

Le RPL/2 adapte ses sorties standard à la localisation courante du système. Les conversions se font grâce à la bibliothèque GNU libiconv. L'utilitaire rpliconv est un outil permettant de convertir l'encodage des fichiers sources dans un encodage qui sera utilisé pour la représentation interne des données.

© 2009-2012 BERTRAND Joël