Linguaggio di programmazione Nim versione 1.2.0

Introdotto rilascio del linguaggio di programmazione del sistema Nim 1.2. Il linguaggio Nim utilizza la digitazione statica ed è stato creato con un occhio a Pascal, C++, Python e Lisp. Il codice sorgente Nim è compilato in una rappresentazione C, C++ o JavaScript. Successivamente, il codice C/C++ risultante viene compilato in un file eseguibile utilizzando qualsiasi compilatore disponibile (clang, gcc, icc, Visual C++), che consente di raggiungere prestazioni vicine al C, se non si tengono conto dei costi di esecuzione il netturbino. Similmente a Python, Nim utilizza il rientro come delimitatore di blocco. Sono supportati strumenti e funzionalità di metaprogrammazione per la creazione di linguaggi specifici del dominio (DSL). Codice del progetto in dotazione con licenza MIT.

Le modifiche notevoli nella nuova versione includono:

  • Implementato un nuovo garbage collector ARC (“-gc:arco”).
  • Nel modulo "di zucchero"Aggiunte nuove macro per raccogliere, duplicare e acquisire.
  • Aggiunta nuova macro "con".
  • Gran parte delle nuove chiamate sono state aggiunte alla libreria standard, tra cui strformat.fmt, strtabs.clear, browsers.osOpen, typetraits.tupleLen, typetraits.genericParams, os.normalizePathEnd, times.fromUnixFloat, os.isRelativeTo, times.isLeapDay , net.getPeerCertificates, jsconsole.trace, jsconsole.table, jsconsole.exception, sequutils.countIt, ecc.
  • Aggiunti nuovi moduli std/stackframes e std/compilesettings.
  • Sono state aggiunte al compilatore le opzioni “—asm” (per l'analisi del codice assembly generato) e “—panics:on” per l'uscita forzata in caso di errori IndexError e OverflowError, senza possibilità di essere intercettati dal gestore “try”.
  • Rilevamento migliorato di possibili buffer overflow.

Fonte: opennet.ru

Aggiungi un commento