]]> ]]>

Nesla 0.8.0

Версия реализации Nesla языка программирования Nesla

Самая последная версия Nesla.

Изменения относительно предыдущей версии:

  • добавлен объект this
  • фукнции теперь можно объявлять внутри выражений
  • x=x+1 больше не затирает x перед вычислением выражения
  • все библиотеки расширений теперь могут быть собраны как разделяемые объекты (за исключением библиотеки, добавляющей поддержку разделяемых объектов)
  • добавлена поддержка postgresql
  • значения теперь полностью уничтожаются при установке в null
  • смешанные операции со строками и числами теперь корректно выполняются
  • вычисление выражений теперь происходит более чем в два раза быстрее
  • масштабная переработка внутреннего двоичного формата скриптов
  • присваивание переменной внутри выражения теперь корректно работает
  • исправлено несколько случаев некорректного возвращаемого значения сравнения объектов разных типов
  • исправлено использование прямого объявления таблиц в параметрах функций
  • добавлена библиотека расширения dl для динамической загрузки модулей
  • добавлены функции added gmtime(), localtime(), string.tolower(), string.toupper() и string.join() в базовую библиотеку
  • добавлена библиотека расширения winapi
  • type() и size() заменены на typeof() и sizeof()
  • += теперь работает и для строк
  • makefile-ы для расширений переписаны на чистом nesla

Примеры:

Факториал - Nesla (11):

Для факториала 13-16 из-за арифметического переполнения возвращается nan (not a number). В результате вывод программы имеет следующий вид:

0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = nan
14! = nan
15! = nan
16! = nan

#!/usr/bin/nesla
function factorial(n)
{
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

for (n = 0; n <= 16; n++) {
    print(n, "! = ", factorial(n), "\n");
}

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам