EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

funcalc – Online in der Cloud

Führen Sie funcalc im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl funcalc, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


funcalc – Funtools-Rechner (für Binärtabellen)

ZUSAMMENFASSUNG


funcalc [-n] [-a argstr] [-e Ausdruck] [-f Datei] [-l Link] [-p Prog] [oname [Spalten]]

OPTIONAL


-a argstr # Benutzerargumente, die an das kompilierte Programm übergeben werden sollen
-e expr # Funcalc-Ausdruck
-f Datei # Datei, die den Funcalc-Ausdruck enthält
-l libs # Bibliotheken zum Hinzufügen zum Link-Befehl
-n # Generierten Code ausgeben, anstatt ihn zu kompilieren und auszuführen
-p prog # benanntes Programm generieren, keine Ausführung
-u # sterben, wenn eine Variable nicht deklariert ist (nicht automatisch deklarieren)

BESCHREIBUNG


funcalc ist ein Taschenrechnerprogramm, das die Konstruktion beliebiger Ausdrücke ermöglicht,
kompiliert und für Spalten in einer Funtools-Tabelle (FITS-Binärtabelle oder Rohereignis) ausgeführt
Datei). Es funktioniert dann durch die Integration vom Benutzer bereitgestellter Ausdrücke in ein Vorlage-C-Programm
Kompilieren und Ausführen des Programms. funcalc Ausdrücke sind C-Anweisungen, obwohl einige
Wichtige Vereinfachungen (z. B. automatische Deklaration von Variablen) werden unterstützt.

funcalc Ausdrücke können auf drei Arten angegeben werden: in der Befehlszeile mit dem -e
[Ausdruck] Schalter, in einer Datei mit dem -f [Datei] switch oder von stdin (falls nicht). -e
noch -f angegeben). Natürlich eine Datei mit funcalc Ausdrücke können gelesen werden
std.

Jeder Aufruf von funcalc erfordert die Angabe einer Eingabe-Funtools-Tabellendatei als
erstes Befehlszeilenargument. Die Ausgabe-Funtools-Tabellendatei ist die zweite optionale Datei
Streit. Es ist nur erforderlich, wenn eine FITS-Ausgabedatei erstellt wird (d. h. in Fällen, in denen
funcalc Ausdruck gibt nur Werte aus, es ist keine Ausgabedatei erforderlich). Wenn Eingabe und Ausgabe
Wenn beide Dateien angegeben sind, kann ein drittes optionales Argument die Liste der Spalten angeben
aktivieren (mit FunColumnActivate()). Beachten Sie, dass funcalc bestimmt, ob dies geschieht oder nicht
Generieren Sie Code zum Schreiben einer Ausgabedatei basierend auf dem Vorhandensein oder Fehlen einer Ausgabe
Dateiargument.

A funcalc Der Ausdruck wird für jede Zeile einer Tabelle ausgeführt und besteht aus einem oder mehreren C
Anweisungen, die die Spalten dieser Zeile bearbeiten (möglicherweise unter Verwendung temporärer Variablen).
Innerhalb eines Ausdrucks wird auf eine Spalte des verwiesen Strom Zeile mithilfe der C-Struktur
Syntax kurs-[Spaltenname]>, z. B. cur->x, cur->pha usw. Es können lokale Skalarvariablen definiert werden
Verwenden Sie C-Deklarationen ganz am Anfang des Ausdrucks, oder sie können definiert werden
automatisch von funcalc (vom Typ Double sein). So kann beispielsweise ein Austausch der Spalten x erfolgen
und y in einer Tabelle kann mit einem der folgenden Äquivalente durchgeführt werden funcalc
Ausdrücke:

doppelte Temperatur;
temp = cur->x;
cur->x = cur->y;
cur->y = temp;

oder:

temp = cur->x;
cur->x = cur->y;
cur->y = temp;

Wenn dieser Ausdruck mit einem Befehl wie dem folgenden ausgeführt wird:

funcalc -f swap.expr itest.ev otest.ev

In der resultierenden Datei werden die Werte der x- und y-Spalten vertauscht.

Standardmäßig ist der Datentyp der Variablen für eine Spalte derselbe wie der Datentyp der
Spalte wie in der Datei gespeichert. Dies kann durch Anhängen von „:[dtype]“ an den ersten geändert werden
Verweis auf diese Spalte. Um im obigen Beispiel zu erzwingen, dass x und y als Doppel ausgegeben werden,
Geben Sie den Typ 'D' explizit an:

temp = cur->x:D;
cur->x = cur->y:D;
cur->y = temp;

Datentypspezifizierer folgen der standardmäßigen FITS-Tabellensyntax zum Definieren von Spalten mithilfe von TFORM:

· A: ASCII-Zeichen

· B: vorzeichenloses 8-Bit-Zeichen

· I: signiertes 16-Bit-Int

· U: vorzeichenloses 16-Bit-Int (kein Standard-FITS)

· J: signiertes 32-Bit-Int

· V: vorzeichenloses 32-Bit-Int (kein Standard-FITS)

· E: 32-Bit-Float

· D: 64-Bit-Float

· X: Bits (als Array von Zeichen behandelt)

Beachten Sie, dass nur der erste Verweis auf eine Spalte den expliziten Datentyp enthalten sollte
Bezeichner.

Natürlich ist es wichtig, den Datentyp der Spalten richtig zu behandeln. Einer der
häufigste Fehlerursache in funcalc Programmieren ist die implizite Verwendung falscher Daten
Typ für eine Spalte im Ausdruck. Zum Beispiel die Berechnung:

dx = (cur->x - cur->y)/(cur->x + cur->y);

muss normalerweise mit Gleitkomma-Arithmetik durchgeführt werden. In Fällen, in denen x und y
Spalten ganze Zahlen sind, kann dies erreicht werden, indem die Spalten mithilfe einer expliziten Funktion als Doubles gelesen werden
Typangabe:

dx = (cur->x:D - cur->y:D)/(cur->x + cur->y);

Alternativ kann dies mithilfe der C-Typumwandlung im Ausdruck erfolgen:

dx = ((double)cur->x - (double)cur->y)/((double)cur->x + (double)cur->y);

Zusätzlich zum Zugriff auf Spalten in der aktuellen Zeile kann auch auf die verwiesen werden
früher Zeile verwenden vor-[colname]>, und zum weiter Zeile verwenden nächste-[colname]>. Beachten Sie, dass
if vor-[colname]> ist in angegeben funcalc Ausdruck, die allererste Zeile ist nicht
verarbeitet. Wenn nächste-[colname]> ist in angegeben funcalc Ausdruck, die allerletzte Zeile
wird nicht verarbeitet. Auf diese Weise, Vorherige und weiter verweisen garantiert immer auf gültige Zeilen.
Um beispielsweise die Werte der aktuellen x-Spalte und der vorherigen y-Spalte auszudrucken,
Verwenden Sie die C-fprintf-Funktion in a funcalc Ausdruck:

fprintf(stdout, "%d %d\n", cur->x, prev->y);

Auf diese Weise können neue Spalten angegeben werden kurs-[Spaltenname]>-Syntax durch Anhängen der Spalte
Typ (und optionale tlmin/tlmax/binsiz-Bezeichner), durch Doppelpunkte getrennt. Zum Beispiel,
cur->avg:D definiert eine neue Spalte vom Typ double. Typspezifizierer sind die gleichen
Wird oben verwendet, um neue Datentypen für vorhandene Spalten anzugeben.

Um beispielsweise eine neue Spalte zu erstellen und auszugeben, die den Durchschnittswert von x und y darstellt
Spalten kann eine neue „avg“-Spalte definiert werden:

cur->avg:D = (cur->x + cur->y)/2.0

Beachten Sie, dass das abschließende „;“ ist für einzeilige Ausdrücke nicht erforderlich.

Wie bei der FITS TFORM-Datentypspezifikation kann der Spaltendatentypspezifizierer vorangestellt werden
durch eine numerische Anzahl, um ein Array zu definieren, z. B. „10I“ bedeutet einen Vektor von 10 kurzen Ints, „2E“
bedeutet zwei Gleitkommazahlen mit einfacher Genauigkeit usw. Eine neue Spalte muss nur einmal im Jahr definiert werden
funcalc Ausdruck, wonach er ohne erneute Angabe des Typs verwendet werden kann. Das
Enthält Verweise auf Elemente eines Spaltenarrays:

cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;

Der Datentyp „X“ (Bits) wird als char-Array der Dimension (numeric_count/8) behandelt, d. h.
16X wird als 2-Byte-Char-Array verarbeitet. Auf jedes 8-Bit-Array-Element wird separat zugegriffen:

cur->stat[0]:16X = 1;
cur->stat[1] = 2;

Hier wird eine 16-Bit-Spalte erstellt, wobei das MSB auf 1 und das LSB auf 2 gesetzt ist.

Standardmäßig werden alle verarbeiteten Zeilen in die angegebene Ausgabedatei geschrieben. Wenn Sie wollen
Um das Schreiben bestimmter Zeilen zu überspringen, führen Sie einfach die C-Anweisung „continue“ am Ende aus
funcalc Ausdruck, da das Schreiben der Zeile unmittelbar nach dem erfolgt
Ausdruck wird ausgeführt. Um beispielsweise das Schreiben von Zeilen zu überspringen, deren Durchschnitt mit dem übereinstimmt
aktueller x-Wert:

cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;
if( cur->avg[0] == cur->x )
weiter;

Wenn kein Ausgabedateiargument angegeben ist funcalc Befehlszeile, keine Ausgabedatei
geöffnet und es werden keine Zeilen geschrieben. Dies ist in Ausdrücken nützlich, die lediglich die Ausgabe ausgeben
Ergebnisse, anstatt eine neue Datei zu generieren:

fpv = (cur->av3:D-cur->av1:D)/(cur->av1+cur->av2:D+cur->av3);
fbv = cur->av2/(cur->av1+cur->av2+cur->av3);
fpu = ((double)cur->au3-cur->au1)/((double)cur->au1+cur->au2+cur->au3);
fbu = cur->au2/(double)(cur->au1+cur->au2+cur->au3);
fprintf(stdout, "%f\t%f\t%f\t%f\n", fpv, fbv, fpu, fbu);

Im obigen Beispiel verwenden wir sowohl die explizite Typspezifikation (für „av“-Spalten) als auch den Typ
Casting (für „au“-Spalten), um sicherzustellen, dass alle Vorgänge doppelt ausgeführt werden
Präzision.

Wenn eine Ausgabedatei angegeben wird, wird die ausgewählte Eingabetabelle verarbeitet und Zeilen ausgegeben
werden in die Ausgabedatei kopiert. Beachten Sie, dass die Ausgabedatei in als „stdout“ angegeben werden kann
um die Ausgabezeilen in die Standardausgabe zu schreiben. Wenn das Ausgabedateiargument ist
übergeben, kann auch ein optionales drittes Argument übergeben werden, um anzugeben, welche Spalten verarbeitet werden sollen.

In einer FITS-Binärtabelle ist es manchmal wünschenswert, alle anderen FITS-Erweiterungen zu kopieren
auch in die Ausgabedatei. Dies kann durch Anhängen eines „+“-Zeichens an den Namen erfolgen
Erweiterung im Namen der Eingabedatei. Sehen lustig für ein verwandtes Beispiel.

funcalc Funktioniert durch die Integration des benutzerdefinierten Ausdrucks in ein Vorlage-C-Programm
namens tabcalc.c. Das fertige Programm wird dann kompiliert und ausgeführt. Variable
Erklärungen, die beginnen funcalc Ausdruck werden im lokalen Deklarationsabschnitt platziert
des Template-Hauptprogramms. Alle anderen Zeilen werden im Hauptprogramm der Vorlage platziert
innere Verarbeitungsschleife. Weitere Details der Programmerstellung werden automatisch erledigt. Für
Beispielsweise werden Spaltenspezifizierer analysiert, um eine C-Struktur für die Verarbeitung von Zeilen zu erstellen
weitergereicht an FunColumnSelect() und verwendet in FunTableRowGet(). Wenn eine unbekannte Variable verwendet wird
im Ausdruck, was zu einem Kompilierungsfehler führt. Anschließend wird die Programmerstellung erneut versucht
Definieren der unbekannten Variablen als Double-Typ.

Normalerweise funcalc Ausdruckscode wird hinzugefügt funcalc Zeilenverarbeitungsschleife. Es ist möglich
um Code zu anderen Teilen des Programms hinzuzufügen, indem dieser Code in spezielle Anweisungen eingefügt wird
der Form:

[Anweisungsname]
... Code kommt hierher ...
Ende

Die Richtlinien sind:

· globale Fügen Sie Code und Deklarationen im globalen Raum vor der Hauptroutine hinzu.

· aus einer regionalen Fügen Sie Deklarationen (und Code) direkt nach den lokalen Deklarationen in main hinzu

· Bevor Fügen Sie Code hinzu, bevor Sie in die Hauptzeilenverarbeitungsschleife eintreten

· nachdem Fügen Sie Code direkt nach dem Verlassen der Hauptzeilenverarbeitungsschleife hinzu

Somit folgendes funcalc Der Ausdruck deklariert globale Variablen und erstellt eine Unterroutine
Aufrufe direkt vor und direkt nach der Hauptverarbeitungsschleife:

globale
doppelt v1, v2;
double init(void);
Doppelter Abschluss (Doppel-V);
Ende
Bevor
v1 = init();
Ende
... Zeilen verarbeiten, mit Berechnungen mit v1 ...
nachdem
v2 = fertig(v1);
if( v2 < 0.0 ){
fprintf(stderr, „Verarbeitung fehlgeschlagen %g -> %g\n“, v1, v2);
wunsch(1);
}
Ende

Routinen wie z drin() und Fertig() Die oben genannten Werte werden zur Verknüpfung an das generierte Programm übergeben
Verwendung der -l [Verknüpfung Richtlinien ...] schalten. Die durch diesen Schalter angegebene Zeichenfolge lautet
der Linkzeile hinzugefügt, die zum Erstellen des Programms verwendet wurde (vor der Funtools-Bibliothek). Für
Nehmen wir zum Beispiel an, dass drin() und Fertig() befinden sich in der Bibliothek libmysubs.a im
/opt/special/lib-Verzeichnis, verwenden Sie:

funcalc -l "-L/opt/special/lib -lmysubs" ...

Benutzerargumente können mithilfe eines String-Arguments an ein kompiliertes funcalc-Programm übergeben werden
"-ein Schalter. Die Zeichenfolge sollte alle Benutzerargumente enthalten. Zum Beispiel, um zu bestehen
Für die ganzen Zahlen 1 und 2 verwenden Sie:

funcalc -a "1 2" ...

Die Argumente werden in einem internen Array gespeichert und über ARGV(n) als Strings abgerufen.
Makro. Betrachten Sie beispielsweise den folgenden Ausdruck:

aus einer regionalen
int pmin, pmax;
Ende

Bevor
pmin=atoi(ARGV(0));
pmax=atoi(ARGV(1));
Ende

if( (cur->pha >= pmin) && (cur->pha <= pmax) )
fprintf(stderr, "%d %d %d\n", cur->x, cur->y, cur->pha);

Dieser Ausdruck gibt x-, y- und pha-Werte für alle Zeilen aus, in denen sich der pha-Wert befindet
zwischen den beiden Benutzereingabewerten:

funcalc -a '1 12' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 8
512 512 5
512 512 5
512 512 8

funcalc -a '5 6' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 5
512 512 5

Beachten Sie, dass es in der Verantwortung des Benutzers liegt, sicherzustellen, dass die richtige Anzahl von Argumenten verwendet wird
sind vergangen. Das ARGV(n)-Makro gibt NULL zurück, wenn ein angefordertes Argument außerhalb der Grenzen liegt
der tatsächlichen Anzahl von Argumenten, was bei blinder Verarbeitung normalerweise zu einem SEGV führt. Überprüfen
Um die Anzahl der Argumente zu ermitteln, verwenden Sie das ARGC-Makro:

aus einer regionalen
langer int-Seed=1;
doppelte Grenze=0.8;
Ende

Bevor
if( ARGC >= 1 ) seeds = atol(ARGV(0));
if( ARGC >= 2 ) limit = atof(ARGV(1));
srand48(Samen);
Ende

if (drand48() > limit) continue;

Das Makro WRITE_ROW erweitert sich auf FunTableRowPut() Aufruf, der die aktuelle Zeile schreibt. Es
kann verwendet werden, um die Zeile mehr als einmal zu schreiben. Darüber hinaus erweitert sich das Makro NROW auf das
Zeilennummer, die gerade verarbeitet wird. Die Verwendung dieser beiden Makros wird im Folgenden gezeigt
Beispiel:

if( cur->pha:I == cur->pi:I ) continue;
a = cur->pha;
cur->pha = cur->pi;
cur->pi = a;
cur->AVG:E = (cur->pha+cur->pi)/2.0;
cur->NR:I = NROW;
if( NROW < 10 ) WRITE_ROW;

Besitzt das -p [prog] Wenn der Schalter angegeben ist, wird der Ausdruck nicht ausgeführt. Vielmehr ist die
Die generierte ausführbare Datei wird zur späteren Verwendung unter dem angegebenen Programmnamen gespeichert.

Besitzt das -n Wenn der Schalter angegeben ist, wird der Ausdruck nicht ausgeführt. Vielmehr der generierte Code
wird nach stdout geschrieben. Dies ist besonders nützlich, wenn Sie eine Skelettdatei erstellen möchten
und fügen Sie Ihren eigenen Code hinzu oder wenn Sie Kompilierungsfehler überprüfen müssen. Beachten Sie, dass der Kommentar
gibt am Anfang der Ausgabe den Compiler-Befehl an, der zum Aufbau des Programms erforderlich ist
Plattform. (Der Befehl kann sich aufgrund der Verwendung von von Plattform zu Plattform ändern
verschiedene Bibliotheken, Compiler-Schalter usw.)

Wie zuvor erwähnt, funcalc deklariert automatisch eine Skalarvariable (als
double), wenn diese Variable verwendet, aber nicht deklariert wurde. Diese Einrichtung ist implementiert
Verwenden eines SED-Skripts namens funcalc.sed, das die Compiler-Ausgabe verarbeitet, um eine zu erkennen
Fehler bei nicht deklarierter Variable. Dieses Skript wurde mit dem entsprechenden Fehler versehen
Informationen für gcc und für cc auf Solaris-, DecAlpha- und SGI-Plattformen. Wenn Sie das finden
Die automatische Deklaration von Skalaren funktioniert auf Ihrer Plattform nicht. Überprüfen Sie dieses SED-Skript.
Möglicherweise müssen einige der erkannten Fehlermeldungen ergänzt oder bearbeitet werden.

Um die lexikalische Analyse von zu behalten funcalc (ziemlich) einfache Ausdrücke haben wir gewählt
einige Einschränkungen hinsichtlich der Genauigkeit der Platzierung von C-Kommentaren, Leerzeichen und Zeilenumbrüchen zu akzeptieren
im generierten Programm. Insbesondere Kommentare, die mit deklarierten lokalen Variablen verknüpft sind
am Anfang eines Ausdrucks (also nicht in a lokal...Ende Block) wird normalerweise enden
in der inneren Schleife, nicht mit den lokalen Deklarationen:

/* Dieser Kommentar landet an der falschen Stelle (z. B. in der inneren Schleife) */
Doppel a; /* auch an der falschen Stelle */
/* Dies wird an der richtigen Stelle sein (innere Schleife) */
if( cur->x:D == cur->y:D ) continue; /* auch an der richtigen Stelle */
a = cur->x;
cur->x = cur->y;
cur->y = a;
cur->avg:E = (cur->x+cur->y)/2.0;

Ebenso werden Leerzeichen und Zeilenumbrüche manchmal weggelassen oder scheinbar willkürlich hinzugefügt
Benehmen. Selbstverständlich beeinträchtigt keiner dieser Stilfehler die Korrektheit des Textes
generierten Code.

Parce que funcalc muss den Benutzerausdruck anhand der übergebenen Datendatei(en) analysieren
Befehlszeile müssen die Eingabedateien zweimal geöffnet und gelesen werden: einmal während des Programms
Generierung und einmal während der Ausführung. Daher ist es nicht möglich, stdin für zu verwenden
Eingabedatei: funcalc kann nicht als Filter verwendet werden. Wir werden erwägen, diese Einschränkung aufzuheben
zu einem späteren Zeitpunkt.

Zusammen mit C-Kommentaren, funcalc Ausdrücke können einzeilige interne Kommentare enthalten
nicht an das generierte C-Programm weitergegeben. Diese internen Kommentare beginnen mit dem #
Zeichen und fahren Sie bis zur neuen Zeile fort:

Doppel a; # Dies wird nicht an die generierte C-Datei übergeben
# das ist auch nicht der Fall
a = cur->x;
cur->x = cur->y;
cur->y = a;
/* dieser Kommentar wird an die C-Datei übergeben */
cur->avg:E = (cur->x+cur->y)/2.0;

Wie bereits erwähnt, werden Eingabespalten normalerweise anhand ihrer Verwendung darin identifiziert
die innere Ereignisschleife. Es gibt seltene Fälle, in denen Sie möglicherweise eine Kolumne lesen möchten
Verarbeiten Sie es außerhalb der Hauptschleife. Beispielsweise könnte qsort eine Spalte in seiner Sortierung verwenden
Vergleichsroutine, die nicht innerhalb der inneren Schleife verarbeitet wird (und daher nicht
implizit als zu lesende Spalte angegeben). Um sicherzustellen, dass eine solche Spalte von gelesen wird
Ereignisschleife, verwenden Sie die explizit Stichwort. Die Argumente für dieses Schlüsselwort geben Spalten an, die
sollten in die Eingabedatensatzstruktur eingelesen werden, auch wenn sie in der nicht erwähnt werden
innere Schleife. Zum Beispiel:

explizites Pi-Pha

stellt sicher, dass die Spalten pi und pha für jede Zeile gelesen werden, auch wenn dies nicht der Fall ist
in der inneren Ereignisschleife verarbeitet. Der explizit Die Aussage kann überall platziert werden.

Beachten Sie schließlich, dass funcalc Arbeitet derzeit an Ausdrücken mit FITS-Binärtabellen und
rohe Ereignisdateien. Wir werden zu einem späteren Zeitpunkt darüber nachdenken, Unterstützung für Bildausdrücke hinzuzufügen.
wenn Bedarf an einer solchen Unterstützung seitens der Gemeinschaft besteht.

Nutzen Sie funcalc online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    SCHLUCK
    SCHLUCK
    SWIG ist ein Softwareentwicklungstool
    das verbindet in C geschriebene Programme und
    C++ mit einer Vielzahl von High-Level
    Programmiersprachen. SWIG wird mit verwendet
    anders...
    SWIG herunterladen
  • 2
    WooCommerce Nextjs Reaktionsthema
    WooCommerce Nextjs Reaktionsthema
    Reagieren Sie mit dem WooCommerce-Theme, das mit erstellt wurde
    Als nächstes JS, Webpack, Babel, Node und
    Express mit GraphQL und Apollo
    Klient. WooCommerce-Shop in React(
    enthält: Produkte...
    Laden Sie WooCommerce Nextjs React Theme herunter
  • 3
    archlabs_repo
    archlabs_repo
    Paket-Repo für ArchLabs Dies ist eine
    Anwendung, die auch abgerufen werden kann
    für
    https://sourceforge.net/projects/archlabs-repo/.
    Es wurde in OnWorks gehostet in...
    Laden Sie archlabs_repo herunter
  • 4
    Zephyr-Projekt
    Zephyr-Projekt
    Das Zephyr Project ist eine neue Generation
    Echtzeitbetriebssystem (RTOS), das
    unterstützt mehrere Hardware
    Architekturen. Es basiert auf einer
    Kernel mit kleinem Fußabdruck ...
    Laden Sie das Zephyr-Projekt herunter
  • 5
    SCons
    SCons
    SCons ist ein Software-Konstruktionstool
    das ist eine überlegene Alternative zum
    klassisches "Make"-Build-Tool, das
    wir alle kennen und lieben. SCons ist
    implementiert ein...
    Laden Sie SCons herunter
  • 6
    PSInt
    PSInt
    PSeInt ist ein Pseudocode-Interpreter für
    spanischsprachige Programmierstudenten.
    Sein Hauptzweck ist es, ein Werkzeug für
    Grundlegendes lernen und verstehen
    Konzept...
    PSeInt herunterladen
  • Mehr »

Linux-Befehle

Ad