Frink

Le Frink est un langage de programmation calculateur d'outil et conçu par Alan Eliasen. Il incorpore des dispositifs semblables à Java, à Perl, à rubis, à causerie, et à diverses réalisations de BASIC. Son foyer principal est sur les champs de la Science , de la technologie , de la physique , du traitement de textes , et de l'éducation .

La langue est appelée en l'honneur du professeur John Frink , qui de brillant (mais fictif) a prévu, il y a des décennies, " de ; Je prévois que dans un délai de 100 ans, les ordinateurs seront deux fois aussi puissants, dix fois du mille plus grand, et si cher que seulement les cinq rois les plus riches de l'Europe posséderont them." ;

Une des caractéristiques de distinction de Frink est qu'elle dépiste des unités de mesure par tous les calculs. Ceci permet à toutes les valeurs de contenir une quantité et ses unités de mesure. Frink comprend comment les différentes unités de mesure mettent en corrélation, comme une longueur cubée est un volume, ou la puissance multipliée par temps est énergie. Différentes unités de mesure peuvent être mélangées dans les calculs, et Frink s'assure automatiquement que les calculs mènent à un résultat avec les dimensions prévues.

taille = 3 pieds attraction universelle = 9.80665 m/s^2 la masse = 60 kilogrammes Potential_energy = taille * attraction universelle * la masse println - > affichage de // de Joules en Joules

La distribution standard vient avec un fichier de données qui contient des milliers des unités de mesure les plus communes, avec des données communes telles que les masses des particules élémentaires, des données planétaires, et des mesures historiques. Le fichier de données standard emploie les unités centrales du SI en tant que ses unités de mesure fondamentales, et prolonge ceci avec des unités pour la devise et l'information (peu). Le fichier de données standard peut être complètement remplacé par l'utilisateur, et de nouvelles unités et même dimensions fondamentales peuvent être ajoutées au temps d'exécution.

La syntaxe de Frink essaye de suivre la notation mathématique standard si non ambiguë. Par exemple, le rapport ci-dessus a pu être récrit using la multiplication implicite entre les trois unités :

la masse d'attraction universelle de taille

Frink n'est pas exactement un dynamiquement dactylographié ni une langue statiquement dactylographiée du . Par défaut, n'importe quelle valeur peut être placée dans la variable. Cependant, pour plus de sûreté, des contraintes arbitraires peuvent être placées sur la variable, s'assurant que seulement des valeurs rencontrant les contraintes peuvent être assignées à la variable. Par exemple, on peut contraindre une variable pour contenir seulement les valeurs qui ont des dimensions de puissance :

la variété p est puissance = 10 watts

Tout nombre de contraintes arbitraires peut être placé sur une variable, y compris des contraintes décrites par des fonctions définies pour l'utilisateur. Par exemple, une variable ou un argument de fonction a pu être contrainte pour contenir seulement les nombres premiers plus considérablement que 100 de .

Frink a des nombres à point mobile du arbitrary-precision des nombres raisonnables d'arbitraire-taille des nombres entiers d'arbitraire-taille, des nombres complexes et l'intervalle arithmétique de .

Des valeurs de date/heure sont intégrées avec les unités de mesure. Des coquilles de date/heure sont entourées par le signe # de livre et peuvent être analysées dans une large variété de formats. Un date/heure représente un instant particulier, et peut être converti en différents fuseaux horaires, le jour de Julian de , être modifié jour de Julian, temps dynamique, et tout autre système du temps. Une valeur avec des dimensions de temps peut être ajoutée à ou soustraite d'un date/heure pour obtenir une nouvelle date-heure. En outre, une valeur de date/heure peut être soustraite d'une autre valeur de date/heure pour obtenir l'intervalle entre les dates.

Le programme suivant démontre la manipulation de date. Il calcule le date/heure que l'horloge d'un ordinateur échouera si des temps sont représentés comme nombre entier à 32 bits signé du complément de deux, indiquant les secondes de l'époque d'Unix de .

0h00 UTC #1970-01-01 # + secondes (2^31-1) - > UTC 3h14 de l'ANNONCE 2038-01-19 de : 07.000 Temps universel coordonné d'AM (Tue)

Frink emploie des caractères d'Unicode partout, lui permettant de représenter la plupart des langues du monde.

Frink a les expressions régulières pour le traitement de textes qui sont très semblables à ceux dans Perl ou rubis .

D'autres datatypes intégrés incluent des rangées dynamiquement resizable, dictionnaires, ensembles, énumérant des expressions, et des fonctions anonymes. Frink permet également l'écriture des programmes orientés objectivement du , bien que la transmission ne soit pas encore mise en application.

Frink peut appeler des méthodes de Java et automatiquement convertir ses types internes à et des types de Java, permettant l'utilisation des bibliothèques externes de Java. Frink peut également être enfoncé dans un programme de Java avec seulement quelques lignes de code.

Le serveur de Frink pagine des utilisations Frink comme langue pour créer les ressources basées sur le WEB dynamiques, semblable à PHP ou pages actives de de serveur.

Il est mis en application dans Java et courra sur une version 1.1 de la machine virtuelle de Java de et plus tard. Ceci inclut PersonalJava 1.1 réalisation qui incluent des réalisations des bibliothèques facultatives du Java.math de . Il inclut une interface de mode texte aussi bien que deux interfaces graphiques différentes using les bibliothèques de Java AWT et d'oscillation respectivement.

Frink contient un moteur de modèle-assortiment et d'arbre-réécriture qui permet la transformation d'une expression mathématique à l'autre. Ceci permet la manipulation symbolique des équations, la simplification des expressions algébriques, et les dérivés symboliques et les intégrales avec les règles appropriées définies.

L'interprète est le Freeware , mais son code source n'est pas disponible.

Random links:HMS Leda | Université de Shanxi des finances et des sciences économiques | Michael Bleekemolen | Crochet et partie latérale | Missions de San Jose | Frink