Привет, ребята!
Я Итан, я один из 10 разработчиков -пегринов. Этот пост посвящен некоторым обновлениям, которые мы добавили в перегрин в последнее время.
О
Если вы знаете Python, вы знаете, насколько он легко. Тем не менее, это также поставляется с большим понижением. Python медленный, и я уверен, что каждый разработчик Python уже знает это. Это немного раздражает. Вот куда входит пегрин. Я и 8 других друзей работали над Перегрином в течение последних нескольких месяцев. Синтаксис Pergines очень похож на Python’s, и он транскомпилируется к C, что делает его таким же быстрым, как C. Ниже я написал 2 программы, одну в Peregrine и одну в Python.
Перегрин
def fib(int n) -> int : if n <= 0: return 1 return fib(n-1) + fib(n-2) def main(): count = 0 # Peregrine has type inference! int res = 0 while count < 40: res = fib(count) count++
Типы возврата функции могут быть опущены.
Питон
def fib(n): if n <= 0: return 1 return fib(n-1) + fib(n-2) res = 0 for c in range(0, 40): res = fib(c)
Эти две программы почти одинаковы, что позволяет пользователям Python так легко переключаться. Теперь вы можете спросить: «Насколько быстрее у перогрина?» Что ж, чтобы ответить на ваш вопрос, вот результаты:
Перегрин:
Выполнено в: 1,06 сек
Python:
Выполнено в: 32,30 сек
Как вы можете видеть, перегрин значительно быстрее, чем Python. Он примерно в 30 раз быстрее, чем Python, без оптимизации при запуске этой программы.
Какие новости?
Вот некоторые из новейших функций Peregrine:
Тип вывод
Тип вывод является одной из новейших функций Pergrine. Это позволяет писать код перосана с простотой.
Если/else/match
Хотя это может показаться стандартной функцией на любом языке программирования, требуется время, чтобы добавить эти функции, поэтому я признаю это. Не много сказать об этом, так как это на каждом языке программирования.
Новые функции
Давайте поговорим больше о функциях, которые в настоящее время доступны в Peregrine.
CCODE
CCODE
Позволяет запускать код C в перегрине. Вот пример:
def main(): x = 1 Ccode x++; Ccode print("{x}\n") # prints 2
Как видите, любые переменные, объявленные вне Код
Блок можно использовать внутри CCODE
и наоборот. Это также означает, что вы можете импортировать любую библиотеку C через CCODE
и используйте его в перегрине.
Встроенная сборка
Вы также можете иметь встроенную сборку в перегрине. Вот пример:
def main(): int arg1 = 45 int arg2 = 50 int add = 0 print("It should add 45 and 50 using asm and print it\n") asm("addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2)) printf("%lld", add)
Это отпечатки 90
, как и ожидалось.
Более
Вы можете найти еще несколько примеров в Перегриновая тестовая папка
Запланированные функции
- Структуры
- Больше декораторов для разных целей
- Питона экосистема в перогрине
- Вы сможете использовать любой модуль Python в перогрине
Вывод
Перегрин планируется выпустить версию 0.0.1 где -то в марте, так что сделайте так, чтобы показать некоторую поддержку, в которой снялись в главной роли Репо И обязательно нажмите кнопку «Смотреть», чтобы не пропустить никаких обновлений.
Мы очень ценим любой вклад, поэтому, если вы найдете что-то, что можете улучшить, откройте запрос! Вы также можете проверить наш открытые вопросы
Спасибо за прочтение!
Оригинал: “https://dev.to/ethanolchik/the-swallow-programming-language-a-python-like-language-that-s-as-fast-as-c-43j7”