LINUX.ORG.RU
ФорумTalks

Виртуальная машина на русском языке.

 ,


1

2

Чисто поржать, поцаны.

Опубликован исходный код начальной реализации развиваемой с нуля виртуальной машины, реализованной на русифицированном языке Си.

https://www.opennet.ru/opennews/art.shtml?num=58745

https://tvoygit.ru/stein47/russian-virtual-mashine/src/branch/devel-1

#вставка    "ru_stdio.h"
#вставка 	<string.h>
#вставка	"ansicode.h"
#вставка	"opcode.h"
#вставка	"vm.h"		//Внешний интерфейс виртуальной машины
// Задачи проекта
цел main()
{
 	пчф(ЗЕЛЕНЫЙ_ТЕКСТ "Новый проект.\n" ОБЫЧНЫЙ_ТЕКСТ);
	//в переменной типа ТВМ "упакована" вся внутреннее устройство ВМ:
	// регистры, стек, память указатели и тд. 
	ТВМ* ВМ1 = создать_ВМ();
	
	// программа состоящая их четырех тестовых инструкций. 
	б64 программа[4] = {цСЛОЖ, цВЫЧ, цУМН, СТОП} ;
	//Программа загружается как массив байтов. 
	загрузить_ВМ(ВМ1,(симв*) программа, (симв*)((программа)+1));

	старт_ВМ(ВМ1);
	// освобождаем динамически выделенную память под ВМ.
	закрыть_ВМ (ВМ1);
	пчф("Виртуальная машина успешно завершила работу.\n Для завершения нажмите ВВОД");
	чтз();
	вернуть 0;  
}	

★★★★★
Ответ на: комментарий от monk

Значит нет контроля и переводят для галочки.

Посмотри ролик на который я выше ссылку сбросил, там про контроль тоже есть.

А что не так? Code complete, например, по-русски читается быстрее и легче, чем английский оригинал.

Некоторые, действительно, переведены хорошо. Это одна из немногих книг в переводе, которые я купил и поставил на полку.

Сейчас тупо нет кадров, которые могли бы заниматься переводом. Качественный специалист стоит дорого и для него много интересной работы. А кто будет платить сопоставимые суммы переводчику? Потребители то размазаны по всей России. Значит если это делать, то деньги может дать только государство, а государство очень плохо дает деньги, вот гораздо более важной деятельности – работникам науки и образованию оно почти не платит.

А всякие коммерческие заходы сдохли. Вот был журнал Хакер, который в большей части как раз и состоял в переводе документации на всякие интересные темы. Сдох, потому что коммерчески стал невыгоден.

soomrack ★★★★★
()
Ответ на: комментарий от monk

Значит нет контроля и переводят для галочки.

Секрет проще. Чтобы переводить техническую литературу английский нужно знать плохо/средне, а предметную область хорошо. Переводчик знает английский очень хорошо, а предметную область плохо/средне. Если бы он очень хорошо знал предметную область, то он бы сам стал программистом.

KivApple ★★★★★
()

#вставка «ru_stdio.h»
#вставка <string.h>
#вставка «ansicode.h»
#вставка «opcode.h»
#вставка «vm.h»

Фиаско в первых строках.

utanho ★★★★★
()
Последнее исправление: utanho (всего исправлений: 1)

этимологический анализ сокращений ими делался или это для трусов?

TomBOY ★★
()
Последнее исправление: TomBOY (всего исправлений: 1)
Ответ на: комментарий от soomrack

Сейчас тупо нет кадров, которые могли бы заниматься переводом. Качественный специалист стоит дорого и для него много интересной работы. А кто будет платить сопоставимые суммы переводчику?

Книга на 900 страниц требует на перевод примерно три месяца. Если она нужна 30 тысячам разработчиков, то если каждый даст по 50 рублей это будет соответствовать зарплате в 500 тысяч в месяц.

monk ★★★★★
()
Ответ на: комментарий от monk

Книга на 900 страниц требует на перевод примерно три месяца. Если она нужна 30 тысячам разработчиков, то если каждый даст по 50 рублей это будет соответствовать зарплате в 500 тысяч в месяц.

Качественно – год.

А ты продай ее 30.000 разработчиков. Вот взял «Совершенный код» Стива Макконнела – тираж 1500 экз. (из них, емнип, около 100 уходит в библиотеки и в архив издательства). Причем, эта книга действительно знаковая, популярная и неспециализированная, т.е. формально, ее стоило бы полистать всем программистам.

soomrack ★★★★★
()
Ответ на: комментарий от monk

Доооо. Ты хоть одну переводную айтишную книжку читал в жизни? Я там видел и ляпы и кривые переводы и откровенные баги. И кто будет переводить и на какие деньги, вчерашний выпускник курсов?

Если она нужна 30 тысячам разработчиков, то если каждый даст по 50 рублей это будет соответствовать зарплате в 500 тысяч в месяц.

Еще лет 10 назад проходили https://lleo.me/dnevnik/2012/03/24

Lordwind ★★★★★
()
Последнее исправление: Lordwind (всего исправлений: 1)

Я вот блин даже не знаю, это проклято или нет.

И, кстати, почему ты \n не русифицировал? А?

hateyoufeel ★★★★★
()
Ответ на: комментарий от soomrack

Качественно – год.

Три страницы в день? Действительно?

Вот взял «Совершенный код» Стива Макконнела – тираж 1500 экз.

Это количество согласны купить за 1950 1485 рублей. В общем, нужен краудфандинговый центр для переводов для нормальной работы.

monk ★★★★★
()
Ответ на: комментарий от soomrack

А ты продай ее 30.000 разработчиков

А тут и начинается все самое смешное. Ценная переводная книга может стоить дохрена из-за своей редкости. Я по Maple доставал через знакомых книжки с тиражом 1000 экз и стоимостью почти в стипендию. Могу предположить, что тогда я один в городе-миллионнике занимался такой темой, потому что изучал все публикации по ней. Сейчас выставлена на авито по цене пачки бумаги и никому не нужна. Я не знаю где такой маня-мирок из 30.000 разработчиков, не умеющих в школьный курс английского, если даже индусы общаются на нем.

Lordwind ★★★★★
()
Ответ на: комментарий от token_polyak

В русской раскладке нет обоих символов.

KivApple ★★★★★
()
Ответ на: комментарий от monk

Качественно – год.

Три страницы в день? Действительно?

Да, т.к. 8 часовой рабочий день, выходные, праздники и еще месяц отпуска и месяц (оптимистично) на работу с корректорами из издательства. Средняя скорость 3 страницы в день это еще довольно быстро будет, т.к. для некоторых вещей придется чего-то почитать, чтобы понять что к чему, посмотреть на устоявшиеся русские термины и пр.

А теперь прикинь:
+ 1400 проданных экземпляров * 1500 руб (цена на озоне)
- 15% комиссия озона (это еще дешево по сравнению с офлайном)
- стоимость печати
- стоимость дизайна обложки
- стоимость корректуры издательства
- стоимость марки издательства
- 15% накладные расходы бюджетной огранизации (или прибыль коммерческой)
- 30% страховые взносы
/ 12 месяцев

и получится, что доход будет меньше 50.000 руб в месяц, и это если без сюрпризов.
soomrack ★★★★★
()
Ответ на: комментарий от monk

Недавно прочитал кто донатит стримерам. Это дети богатых родителей и вахтовики. У них у всех денег и времени много, а развлечений мало.

Lordwind ★★★★★
()
Ответ на: комментарий от Lordwind

Угу, о чем и речь. Все эти переводы возможны или just for fun, как переводы man, или как мелкий приработок для начинающих программистов владеющих родным языком – модель журналов Хакер и пр. Плюс еще есть вариант, учебной литературы, т.е. для входа в профессию. Специализированную переводить бессмысленно, т.к. сегодня специалист моложе 40 лет и не владеющий английским это нонсенс.

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Не знаю как сейчас, а в тучные годы технические переводчики получали от 3000$ и выше. Речь конечно не про инструкции к пылесосам, а про медицину и нефтянику.

Lordwind ★★★★★
()
Ответ на: комментарий от alex1101

Суть перевода на русский - сделать понятно

кому?

pr849
()
Ответ на: комментарий от Lordwind

Ну так там все сильно централизовано, у нефтяников на все это деньги были. Да и перевод там не документации хз пойми кого, я документации к оборудованию + документов для юридического сопровождения и распределения ответственности (ухода от нее)… Несопоставимо с переводом jquery, или pandas, или чего там еще.

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Кстати, про JS же вот недавно был вкусный топик Опенсорс разработчик пожаловался на то, что ему не платят

При этом он практически не получает финансовой поддержки, а после санкций его и без того малые доходы от пожертвований сократились почти в шесть раз (с $2500 до $400).

Если он поделится с переводчиком, то каждый будет получать аж целых 200$!

Lordwind ★★★★★
()
Ответ на: комментарий от soomrack

Средняя скорость 3 страницы в день это еще довольно быстро будет

У меня 25 дней по 2 часа ушло на https://docs.racket-lang.org/russian-lang/. При том, что я параллельно ещё и документируемый код дописывал. Печать показывает 34 страницы.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

Ох, зря ты выложил, ща тебе насуют…

Пробежался по ссылке. Это выглядит, как первый, технический вариант перевода, т.е. первоначальная заготовка для работы. Чтобы перевод стал качественным, легко читаемым и кристально ясным для читателя, над текстом еще надо много работать. Собственно, ты сделал первую часть работы, она самая простая. Если будешь пытаться довести ее до уровня качественного русского текста, то как раз и будет в итоге 3 страницы в день, если повезет.

soomrack ★★★★★
()
Ответ на: комментарий от Lordwind

Донат всегда невыгоден. Краудфандинг вполне работает. Тем более, что для перевода известно, что переводить, а не кот в мешке.

monk ★★★★★
()
Ответ на: комментарий от soomrack

Ох, зря ты выложил, ща тебе насуют…

Было бы неплохо… критика полезна.

Чтобы перевод стал качественным, легко читаемым и кристально ясным для читателя, над текстом еще надо много работать.

А вот это можно чуть-чуть разжевать?

monk ★★★★★
()
Ответ на: комментарий от monk

Чтобы перевод стал качественным, легко читаемым и кристально ясным для читателя, над текстом еще надо много работать.

А вот это можно чуть-чуть разжевать?

1. Кто на ком стоял? (ц)
2. Какую бы оценку тебе поставила за этот текст учительница русского?
3. Есть ли лишние слова в тексте?
4. Есть ли слова-паразиты?
5. Можно ли выразить мысль короче и яснее?
6. Не спотыкается ли язык, когда читаешь текст?
7. Нет ли перегруженности несколькими мыслями в некоторых предложениях?
...

Для удобства работы с арифметикой реализованы приоритеты бинарных операций. Если в списке обнаружена бинарная операция, то она становится в голову списка и получает элементы до и после неё как два аргумента-списка. Операцией считается любой индентификатор, который состоит только из !#$%&⋆+./<=>?@^~:*- и не равен «…». Любой другой идентификатор можно сделать оператором добавив перед и после него знаки «^». Например, (2 ^cons^ 3) то же самое, что (cons 2 3).

Я не особо понял этот абзац. Тут куча мыслей навалена в кучу.

Я бы вначале написать базовые, привычные человеку операции, которые поддерживает язык, потом указал бы, что интерпретатор(компилятор?) будет воспринимать идентификатор как операцию если он удовлетворяет следующи свойствам (свойства – списком). А какие из них будут бинарные, какие унарные, …?

Про обработку списка с бинарной операцией написал бы отдельный абзац. Тут важно указать что в итоге получится, а не только как оно интерпретируется…

PS: При работе над текстом, он несколько раз переписывается, в попытках сделать его более ясным и точным. Итоговый вариант обычно довольно сильно отличается от первоначального.

soomrack ★★★★★
()
Последнее исправление: soomrack (всего исправлений: 1)
Ответ на: комментарий от monk

Меня как-то перед новым годом дёрнуло перевести вот это: https://fortran-lang.org/ru/index

Некоторые заголовки недоступны для перевода, поэтому остались на английском. Да и перевёл прежде всего руководства.

grem ★★★★★
()
Ответ на: комментарий от soomrack

Я не особо понял этот абзац. Тут куча мыслей навалена в кучу.

Это не перевод. Это моё. Перевод — глава 2.

И эта куча мыслей для тех, кто уже знает лисп (Racket).

Но я, кажется, начинаю понимать.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от soomrack

Я не особо понял этот абзац. Тут куча мыслей навалена в кучу.

Для нормальных читателей вот этот кусок: https://docs.racket-lang.org/russian-lang/#%28part._expressions%29

Он читабелен? Если нет, то мне, похоже, нужен профессиональный читатель…

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от grem

Те же замечания: над текстом еще надо работать. Но как черновой вариант, наверное, для многих сойдет, и это точно лучше, чем ничего.

Fortran (Фортран) изначально был разработан для приложений с интенсивными вычислениями в области науки и проектирования. Тщательно разработанные и протестированные оптимизирующие компиляторы и библиотеки позволяют писать программы, которые исполняются так быстро, насколько это возможно на используемом оборудовании.

Следующая итерация (если бы я работал над текстом):

Язык программирования Фортран (англ. Fortran) был разработан для выполнения научных и инженерный вычислений. Его компиляторы и стандартные библиотеки тщательно протестированы, кроме того, они обладают высокой эффективностью: вычислительные алгоритмы реализованные на Фортране могут выполняться настолько быстро, насколько это в принципе возможно на используемом оборудовании.

Все равно, второе предложение мне не нравится, оно в обоих вариантах какое-то мутное и неконкретное…

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Проблема перевода в том, что с одной стороны хочется не сильно отступать в изложения от исходного текста. Иначе это будет уже собственный текст, а не перевод. А цель была именно перевести, но иногда это сложно сделать не меняя структуру предложений.

Изначальный текст достаточно нетехничным языком написан:

Fortran has been designed from the ground up for computationally intensive applications in science and engineering. Mature and battle-tested compilers and libraries allow you to write code that runs close to the metal, fast.

Если взять «трое в лодке, не считая собаки», то там текст строго следует оригиналу (за исключением нескольких шуток). Но оригинал очень просто и доступно написан.

Пока жду, когда обновят файлы доступные к переводу. Может чуть подправлю что ещё, перечитав ещё раз.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 4)
Ответ на: комментарий от monk

Он читабелен? Если нет, то мне, похоже, нужен профессиональный читатель…

Все читабельно, вопрос только в том, сколько времени мы тратим на понимание прочитанного…

Выражение — это команда языка Адина, возвращающая значение.

Выражение -- это команда, которая возвращает значение. 

Выражения записываются в виде последовательности слов, разделённых пробельными знаками. Слово может быть оператором, если состоит только из знаков «!#$%&⋆+./<=>?@^~:*-» кроме «.» и «…» или начинается и заканчивается на «^». Примеры операторов: +, -, ^пара^. Если оператор начинается и заканчивается на «^», то он вызывает функцию по имени между «^» со своими аргументами. Например, (2 ^пара^ 3) то же самое, что (пара 2 3).

Так выражение это команда или последовательность слов, разделенных пробелами?

Слово может быть оператором, если состоит только из знаков «!#$%&⋆+./<=>?@^~:*-», т.е. может состоять и не быть?

Тут тоже намешано все в кучу. Лучше было бы написать по пунктам что является оператором, и отдельно вынести два исключения.

А можно ли создать функцию +, т.е. что будет вызвано для ^+^?

Также операторы (кроме = и ? описанных ниже) автоматически объединяют слова перед и после оператора в команды. Например (список 2 3 ++ список 4 5 6) то же самое, что (++ (список 2 3) (список 4 5 6)).

Слова «Также», «описанных ниже», «автоматически» – лишние. Но в целом мысль не особо понятна, то же самое или эквивалентная запись? А какие слова до и после? Все? Часть?

Если в выражении нет операторов, то первое слово определеяет синтаксис выражения. Если первое слово — функция, то остальные слова — аргументы этой функции.

Мне кажется, что я не понимаю смысл слова «синтаксис». Нафига так сложно писать? Можно же прямо сказать (как я понял):

Если в выражении нет операторов, то первое слово выражения интерпретируется как имя функции, а остальные слова – как ее аргументы.

soomrack ★★★★★
()
Ответ на: комментарий от grem

Проблема перевода в том, что с одной стороны хочется не сильно отступать в изложения от исходного текста. Иначе это будет уже собственный текст, а не перевод. А цель была именно перевести, но иногда это сложно сделать не меняя структуру предложений.

Ну так это вечная песня, является ли переводчик соавтором, что лучше технический перевод или авторский… На мой взгляд, сегодня ценным является именно авторский перевод, технический только в очень конкретных случаях, типа юридических документов, технической документации и т.п.

Поэтому мне кажется, что лучше переводить смысл и как-то состыковывать культурные пласты того языка с культурными пластами этого.

Смысл первого предложения – Фортран был разработан для научных и инженерных вычислений.

Смысл второго предложения – компиляторы и библиотеки за полвека использования были отлажены и отоптимизированы так, что вычисления делаются очень быстро, так быстро, как это в принципе возможно.

Эти фразы корявы, нужно их написать по-русски, можно сильно поменять все слова, сделать больше предложений, главное чтобы смысл остался таким.

На мой взгляд английский вариант более понятен, чем твой русский.

Mature and battle-tested compilers and libraries allow you to write code that runs close to the metal, fast.

vs

Тщательно разработанные и протестированные оптимизирующие компиляторы и библиотеки позволяют писать программы, которые исполняются так быстро, насколько это возможно на используемом оборудовании.

Смысл Mature пропал, смысл battle-tested пропал, акцент на fast пропал. Надо подумать как можно хорошо перевести «runs close to metal»…

Чтобы хорошо переводить, надо много читать на родном языке, причем не только писателей-классиков, но и соотв. техническую литературу, а специалисты техническую литературу на русском не читают…

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Так выражение это команда или последовательность слов, разделенных пробелами?

Является командой. Записывается словами.

А можно ли создать функцию +, т.е. что будет вызвано для ^+^?

Функцию можно любую. + является оператором (так как только из знаков «!#$%&⋆+./<=>?@^~:*-»). ^+^ тоже допустимое имя функции, являющейся оператором.

то же самое или эквивалентная запись

Теперь я не понял.

#define a 42
...
c = a + 1;

и

#define a 1
...
c = 42 + 1;

то же самое или эквивалентная запись?

Технически (список 2 3 ++ список 4 5 6) преобразовывается в (++ (список 2 3) (список 4 5 6)).

Если в выражении нет операторов, то первое слово выражения интерпретируется как имя функции, а остальные слова – как ее аргументы.

Нет. Первое слово может не быть функцией, а быть именем синтаксиса (= синтаксической конструкции). Например

если сч > 42 тогда вывести "да" иначе вывести "нет"

Здесь «если» не функция, а идентификатор синтаксиса.

По остальному понял, в какую сторону исправлять. Благодарю!

monk ★★★★★
()

цел main()

Что за недоработки? Халтура! Надо

цел глав() {

}

Ну и неправославные {}, чтобы набрать которые надо переключать раскладку, надо заменить на что-то посконное.

cocucka ★★★★☆
()
Ответ на: комментарий от soomrack

Сейчас есть гранты на переводы научной и технической литературы. Переводят плохо

Госизмену таким переводчикам натянуть можно

DumLemming ★★★
()
Ответ на: комментарий от cocucka

ГПУ()
НКВД()
Шлагбаум()
...

Глупость

интернациональна

И конечно

Дураков - не победить!

---------------------------------
Для настроения.

У нас в отделе сотрудник есть такой, что ЛОР позавидует.
Он вечно задает нелепые вопросы, да такие, что за стул нужно держаться (на полном серьезе, а не хохма).
Так ведь он не дурак вовсе.
Характер такой.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 3)
Ответ на: комментарий от KivApple

Документация должна быть на русском, а англ как раз можно платной энтерпрайз поддержкой для иностранцев делать.

А вот код должен быть латиницей, по тому же, почему в математике используют латиницу - это как раз очень хорошо что всякие кодовые слова набраны не теми же буквами, что и разговорные.

firkax ★★★★★
()
Ответ на: комментарий от Lordwind

Вы так говорите, как будто документацию на инглише каждый раз с нуля переписывают. Берете гит, смотрите что поменялось, переводите изменившееся… профит!

cobold ★★★★★
()

Ну можете пока чисто поржать, но то о чем мечтал Виталька Луговский приближается стремительным домкратом в виде первой ласточки chatgpt

И сдуются толпы программистов, в небольшую общность умеющих на нормальном языке полно, грамотно и однозначно составить ТЗ для ИИ.

Писать на (пока еще) современных языках высокого уровня будет такой же маргинальщиной как прогать сегодня на ассемблере.

Поржи пока можно.

futurama ★★★★★
()

Дорогой друг.

Когда постановщики задач научатся излагать свои мысли на грамотном русском, разбивая т.з. хотя бы на параграфы и абзацы, а также - ценить время разработчиков, тогда, конечно, наступит рай.

А пока что - арбайтен за плошку риса на ломаном англицком. И не забывайте укладываться в дедлайны!

Mirage1_
()
Ответ на: комментарий от Mirage1_

Когда постановщики задач научатся излагать свои мысли на грамотном русском,

Скорее всего не язык виноват (в т.ч. русский), а тот кто «не умеет».

Сколько будет 2 + 2?
Ну гдэ-то, сэм, восэм.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от soomrack

Чтобы хорошо переводить, надо много читать на родном языке, причем не только писателей-классиков, но и соотв. техническую литературу, а специалисты техническую литературу на русском не читают…

А не читают, потому что её почти не пишут, потому что в индексы международные она не попадает. А про техническую литературу, являющуюся переводами, ты сам писал… замкнутый круг, однако.

monk ★★★★★
()
Ответ на: комментарий от t184256

На родном должны быть доступны курсы полезного.

Курсы тратят время. То, что на курсах рассказывают 20 часов, я могу прочесть за 4 часа (при доступности информации).

А когда информация только на курсах, да ещё за большие деньги (как у HP, например), то это раздражает больше, чем проприетарный код ( с ним при доступности информации/документации работать всё-таки можно).

monk ★★★★★
()
Ответ на: комментарий от monk

Курсы тратят время, только если одновременно и родители и система образования оказались стаями дятлов. На родном они должны быть доступны только для тех, кому прям совсем не повезло. Больше на родном ничего не нужно, потому что местечковые языки это легаси и национализм.

Большая часть твоего пассажа не в тему и вообще в молоко.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

Курсы тратят время, только если одновременно и родители и система образования оказались стаями дятлов.

Ничего не понял. Вот есть HP. Её информация по коммутаторам доступна только на курсах. И вместо того, чтобы за час в справочнике найти нужную информацию, инженер должен неделю слушать лектора. Как могли бы это исправить родители и система образования?

Больше на родном ничего не нужно, потому что местечковые языки это легаси и национализм.

Посмотрю, как ты запоёшь когда через пять-десять лет придётся читать документацию исключительно на китайском.

monk ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)