![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 6
|
![]()
Всем привет!
Хотелось бы представить здесь свой проект языка программирования. Назвал Astra (на вопрос "почему?", наверное, не отвечу: просто в один прекрасный день пришло в голову ![]() Язык прошёл уже около 7 версий тестирования (с участием только пары человек), теперь пришло время показать всем результаты своей полугодовой работы. Что есть в языке сейчас:
Что ещё не доработано (не сделано):
Очень хочется услышать конструктивную критику деталей проекта, советы от тех, кто, возможно, этим уже занимался (...или хочет заняться - добро пожаловать в команду). Вангую множество вопросов на тему "типы данных". Отвечу просто: быстродействие не пострадало никак, зато очень легко собирать числа из составных кусочков (да и с длинной арифметикой полегче). Кстати о быстродействии. Недавно проводили тестирование на счёт от 1 до 1000000 с выводом их всех на экран. Результаты:
Архив со всем необходимым прикрепил (доки, exe-шник x64 - для Win32 (x86) получилось создать только Debug-exe (с прикрученным тормозным отладчиком), но он тоже в архиве - кучка примеров - есть даже функции из "стандартной библиотеки") ![]() === Astra.rar === Вот кстати небольшой примерчик - определение функций, обрезающих нужные символы с разных крёв строки: def ltrim(s,c) ; с левого краю while mid(s,1)=c do let s$,substr(s,2,length(s)-1) return s def rtrim(s,c) ; с правого краю while mid(s,length(s))=c do let s$,substr(s,1,length(s)-1) return s Ах да. На данный момент - самая большая моя программа на Astra - это полностью рабочий интерпретатор Brainfuck-а. Тоже находится в архиве ![]() P. S. В скором будущем планирую сделать возможность локализации языка - т. е., использование русскоязычных команд, функций и идентификаторов. Но это в планах (благо интерпретатор позволяет без больших затрат такую возможность реализовать). Последний раз редактировалось Alex_San4ez; 24.02.2013 в 14:58. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Это компилятор или интерпретатор?
Он как бейсик один оператор - одна строка, или многострочный? Он как питон требует обязательных отступов? Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 6
|
![]() Цитата:
![]() 1. Интерпретатор. В этом вся забава приведённых результатов теста. 2. Пожалуйста, поподробнее. Я знаю Бейсик, но вот смысл понятия "многострочный" для меня покрыт завесой тайны ![]() 3. Он вообще не требует никаких отступов. Все пробелы ставятся на усмотрение автора программы. Пробел между командой и параметрами, всё же, лучше ставить ![]() 4. По сути дела, почти всё сразу. Каждый отдельный элемент массива - это отдельная переменная в общем для них участке памяти. Значит, массивы не нужно объявлять, только инициализируем элементы. Похоже на расширяемый вектор. Но дополнение: не обязательно нумеровать элементы по порядку. Это уже а-ля словарь. Причём можно сочетать индексы самых разных типов данных (из-за их же отсутствия): a[10]["trololo"][6.28] - например. Последний раз редактировалось Alex_San4ez; 24.02.2013 в 15:16. |
|
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Цитата:
Код:
Шикарно. На руби и пхп похож. Там не надо тип переменой задавать и разные типы массив есть. Вот бы в delphi так же... ^-^ Последний раз редактировалось Человек_Борща; 24.02.2013 в 15:35. |
||
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 6
|
![]()
Нет, в таком случае - только однострочный.
Цитата:
![]() Иногда бывает очень полезно, например, определить знак числа: -1, 0 или 1: def sgn(a) return a<=>0 |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
Вопрос: для чего этот язык? Чем он лучше других?
|
![]() |
![]() |
![]() |
#7 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Цитата:
Предложение: Я в своем ЯВУ решил сделать для функций параметризированные параметры полюбому. Вот например один из моих скриптов для передачи файлов по FTP: Код:
Тоже самое: f.del files='d:\n\*'. У этого обьекта есть медод del, которому передается параметр files. Так же ему можно передавать и другие параметры, которые обьясняют методу что ему делать. Не просто и тупо f.del(''d:\n\*'), а под именем, чтоб было понятно что это. Тоже самое f.put from='c:\Users\Me\Desktop\n\*.txt' to='d:\n\' from указывает откуда брать файлы, to - куда их ложить. Рекомендую и тебе реализовать такое, ибо код становится более читабельным.
I'm learning to live...
|
|||
![]() |
![]() |
![]() |
#8 | |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 6
|
![]()
Stilet, спасибо, серьёзно подумаю насчёт этого
![]() Цитата:
Ну, а чем лучше - в общем-то, как раз теми спецификациями, о которых я уже упомянул. Где-то реализовано одно, где-то другое. Я вот, например, собрал очень вкусные моменты воедино и решил показать всем, что у меня получилось. А почему бы и нет? ![]() К слову сказать - исходники самого интерпретатора кроссплатформенны, поэтому лишь вопрос времени, когда я доберусь до других ОС. К тому же, мой язык лишён многих минусов других популярных вещичек - опять же, например, не такой строгий контроль за отступами, как в Python. Последний раз редактировалось Alex_San4ez; 24.02.2013 в 15:58. |
|
![]() |
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Поясню: каждый программист изобретал свой собственный язык программирования, причем, зачастую - не один. Чего именно Вам не доставало в уже придуманных до Вас языках и, самое главное: Почему Вы думаете, что Ваш язык будет кому-то интересен кроме Вас? Цитата:
1. Данный "тест" измеряет исключительно свойства функций ввода/вывода используемой ОС и никакого отношения к "быстродействию" языка программирования не имеет. 2. Следовательно, чтобы делать вывод, пострадало или нет "быстродействие" этот тест абсолютно не подходит. Есть же более или менее стандартные тесты, например, тест Джека Донгарры - переведите его на свой язык, тогда и будет понятно, как обстоит дело с "быстродействием" и как на нем сказалось отсутствие типизации. |
||
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
распространённость языка обуславливается богатыми наработка ми на нем.. библиотекам SDK, IDE итд .... у вашего языка думаю просто нет будущего
.. для интереса.. для себя - да хорошая вещь |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Язык программирования С | Mariolka | Помощь студентам | 11 | 15.12.2012 20:44 |
Язык программирования D | pproger | Общие вопросы по программированию, компьютерный форум | 2 | 24.05.2012 05:01 |
Язык программирования С++ | Jasper92 | Свободное общение | 2 | 09.11.2009 13:51 |
язык программирования Си | Ruslan0990kz | Общие вопросы C/C++ | 1 | 03.06.2009 22:01 |