IT в России и мире в реалиях мирового кризиса

1,401,087 8,469
 

Фильтр
TAU
 
Слушатель
Карма: +53.40
Регистрация: 24.07.2008
Сообщений: 4,227
Читатели: 0
Цитата: adolfus от 10.03.2016 22:44:491. Кобол там впереди всех и. похоже, хрен кто его когда-нибудь догонит -- софт написан и будет актуален пока жива экономика, основанная на долгах, в смысле, пока есть банки в том виде, в котором они есть.
2. Фортран в списке второй -- лет тридцать наблюдаю попытки школоты переписать лапак и остальное числодробительное с нетлиба на пасквилях, сях, плюсах, и даже паскакле -- все бестолку.
3. Что касается, вcтроенного/бортового ПО, то ада вообще вне конкуренции -- параллелизм на уровне языка.  Си рулит там, где нужно генерить компактный и быстрый код.

1. Нечто похожее слышал про Кобол (что больше всего строк ПО в мире написано именно на нем), правда, у меня нет пруфлинков. Да, программы на Коболе жили десятилетиями, живут и будут жить. Остановить сервера транснациональных банков и страховых компаний невозможно - а как иначе поменять ПО?
2. Фортран имеет достаточно эффективный компилятор. Без лишнего. Насколько действительно велика доля Фортрана среди ВСЕХ приложений (не научного ПО), не знаю...
3. Встроенное ПО (по крайней мере до недавних пор) подразумевает необходимость компактного и быстрого кода. Получается у Вас противоречие. Еще раз повторю свою мысль: совсем не уверен, что Ада действительно опережает С/C++ в применении в бортовом ПО. Скорее наоборот.
  • +0.00 / 0
  • АУ
TAU
 
Слушатель
Карма: +53.40
Регистрация: 24.07.2008
Сообщений: 4,227
Читатели: 0
Цитата: mrt789 от 11.03.2016 09:21:191. драконит... он вроде бы генерит затычки, которые потом надо наполнять кодом.
2. ЗЫ. Если же говорить не про эрзацы, а про реально использующиеся примеры графических ЯП, причем для чугуния - это LD ("лестничные диаграммы").
3. Но, ИМХО, надо четко понимать, что это пригодно лишь для программирования задач выдачи тех или иных управляющих сигналов ("конечный автомат", также как всякие BPMN/BPEL и прочие "программист будет не нужен")

1. Что значит "затычки"??? Операторы любого языка высокого уровня при трансляции заполняются машинным кодом специальной программой - генератором кода. Если брать ГРАФИТ/ФЛОКС технологию - то особо ничего придумывать не приходится, стандартные операции все занесены в систему, остается подставить параметры таблиц ФЛОКС.
2. Что значит "эрзац"? Вам кажется, что ДРАКОН - "эрзац" на основании чего? Вы в курсе, что ГРАФИТ/ФЛОКС успешно применяется на практике во многих космических проектах? Космические проекты - по-Вашему "эрзац"???
Кстати, стандарт МЭК61131 помимо графического языка LD (по моему личному мнению как раз реже используемого) включает графические языки FBD и SFC.
3. Кто вам дал право "свысока" смотреть на "программирование выдачи управляющих сигналов"? Если вы лично программируете обыкновенные вычислительные задачи, ошибка в коих далеко не смертельна, это - ваши личные проблемы с областью компетенции.
Иными словами, это не значит, что программное обеспечение, управляющее Боингом-787, Международной космической станцией или атомной электростанцией действительно столь примитивно и легко создается. Более того, мы живем в эпоху, когда как раз происходит тектонический сдвиг решаемых с помощью ЭВМ задач от последовательных - к параллельным, от подсчетов - к управлению, от обычных - к системам реального времени (не случайно вошел в активное употребление термин "кибер-физические системы"). Там сложность есть, правда, она другая и в традиционных программистских университетских курсах пока слабо отражена...
  • +0.00 / 0
  • АУ
kisur   kisur
  13 мар 2016 03:43:26
...
  kisur
Цитата: slavae от 12.03.2016 18:34:39Непонятно, как при всей лени тебе не лень набирать $. Я как вижу этот доллар, сразу понимаю - извращенец разрабатывал. Постоянно он меня сбивает с набора, обязательно на этот доллар надо пальцы раскорячить.

Хорошо, зарезервируйте другой символ, который при прочтении будет давать четкое определение функциональной принадлежности.
Хотите *, но тогда каким символом будем умножать?
Отредактировано: kisur - 01 янв 1970
  • +0.00 / 0
  • АУ
kisur   kisur
  13 мар 2016 03:52:52
...
  kisur
Цитата: mse от 12.03.2016 18:52:48Походу, вам надо посмотреть на какого-нить HDL. AHDL, Verilog, VHDL... От там жосская типизаццыя, данные произвольной длины, с возможностью произвольного объединения/разделения мух и котлет, абсолютный параллелизьм и, ваще, песочница для порезвиться инженеру, который ещо помнит, каг на бумашке состыковывать ЛАшечки и ТМ2 жопка к жопке. Веселый

Просто при анализе строки, когда я вижу формат результата, я точно понимаю что произойдет с операндами, а не наоборот. Т.е. если я на выходе получаю строку, то под + понимается конкатенация, а если булев тип, то побитное или.
Отредактировано: kisur - 01 янв 1970
  • +0.02 / 1
  • АУ
kisur   kisur
  13 мар 2016 06:00:19
...
  kisur
Цитата: kisur от 12.03.2016 17:32:35Продолжаю.



Скрытый текст

Далее.
Мы все знаем про такой ресурс как вики. У всех свое отношение. Но сама идея получения информации считаю верная.
Создаем сайт, на котором каждая лексическая конструкция любого из существующих языков будет представлена в алгоритмическом представлении, асемблерном, машинном (с возможностью к привязки к конкретной среде исполнения)
Все выдающиеся умы человечества могут представить свой алгоритм или код для выполнения той или иной элементарной задачи. Далее в ходе обсуждения будет выставляться экспертный рейтинг.
Представляете какой продукт будет получаться на выходе? А на сколько сократится время разработки? Ведь отладка новой задачи занимает уйму времени и надо наработать статистику.
Даже если начинающий программер, который только написал привет мир, сразу может получить доступ к бриллиантам.
Или пишу я допустим на С а надо получить питоновский код (это абстракция). Захожу на сайт, кидаю туда свою текстовку. Мне вываливает список замечаний и уже примеры готовых решений. Я исправляю.
Или надо мне, чтобы программа работала на новой архитектуре. Выбираю где надо и получаю исполнимый файл на основании компилятора, который был вылизан коллективом единомышленников более чем пускай миллион и обкатан на еще большем количестве задач в течении надцати лет.
В результате произойдет естественный отбор идей и методов решения и в нашей жизни (а главное в жизни юзверей) станет меньше поводов рвать на пятой точке волосы.
Отредактировано: kisur - 13 мар 2016 06:00:48
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +18.98
Регистрация: 12.02.2010
Сообщений: 12,011
Читатели: 2
Цитата: TAU от 12.03.2016 21:19:573. Встроенное ПО (по крайней мере до недавних пор) подразумевает необходимость компактного и быстрого кода. Получается у Вас противоречие. Еще раз повторю свою мысль: совсем не уверен, что Ада действительно опережает С/C++ в применении в бортовом ПО. Скорее наоборот.

С++ вообще не используется для разработки бортового софта.
То, что Ада не представлена широко на просторах бывшего СССР, говорит всего-лишь о том, что на данной территории нет под нее задач. На самом деле в небе, на море, в космосе и в энергетике это основной язык. Из топовых он один умеет параллельные дела. Остальные только через костыли.
Код, который генерится из Ады, в разы компактнее, чем из С++ и на порядок компактнее, чем код из-под всех остальных, если есть паралельные дела.
  • -0.02 / 2
  • АУ
Valery
 
russia
St.Petersburg
55 лет
Слушатель
Карма: +2.32
Регистрация: 01.11.2008
Сообщений: 332
Читатели: 0
Цитата: adolfus от 14.03.2016 03:14:47С++ вообще не используется для разработки бортового софта.
То, что Ада не представлена широко на просторах бывшего СССР, говорит всего-лишь о том, что на данной территории нет под нее задач. На самом деле в небе, на море, в космосе и в энергетике это основной язык. Из топовых он один умеет параллельные дела. Остальные только через костыли.
Код, который генерится из Ады, в разы компактнее, чем из С++ и на порядок компактнее, чем код из-под всех остальных, если есть паралельные дела.

Предлагаю простой тест.
Делаем аналогичные коды на С, С++, Ada, Modula-2... И результат рассматриваем через IDA (Interactive DisAssembler). Пока что моя практика показывает, что переписывание программы с C++ на C добавляет до 20% производительности. Анализ именно ассемблерного кода говорит о том, что еще  5-10 процентов производительности получаются на ровном месте (если правильно писать на С). Ну уж если ассемблер... (дорого, долго, но если мастер, то абсолютно надежно)
Отредактировано: Valery - 14 мар 2016 06:59:09
  • +0.04 / 4
  • АУ
mrt789
 
Слушатель
Карма: +2.68
Регистрация: 09.01.2010
Сообщений: 2,013
Читатели: 1
Цитата: TAU от 12.03.2016 21:33:181. Что значит "затычки"??? Операторы любого языка высокого уровня при трансляции заполняются машинным кодом специальной программой - генератором кода. Если брать ГРАФИТ/ФЛОКС технологию - то особо ничего придумывать не приходится, стандартные операции все занесены в систему, остается подставить параметры таблиц ФЛОКС.
2. Что значит "эрзац"? Вам кажется, что ДРАКОН - "эрзац" на основании чего? Вы в курсе, что ГРАФИТ/ФЛОКС успешно применяется на практике во многих космических проектах? Космические проекты - по-Вашему "эрзац"???
Кстати, стандарт МЭК61131 помимо графического языка LD (по моему личному мнению как раз реже используемого) включает графические языки FBD и SFC.
3. Кто вам дал право "свысока" смотреть на "программирование выдачи управляющих сигналов"? Если вы лично программируете обыкновенные вычислительные задачи, ошибка в коих далеко не смертельна, это - ваши личные проблемы с областью компетенции.
Иными словами, это не значит, что программное обеспечение, управляющее Боингом-787, Международной космической станцией или атомной электростанцией действительно столь примитивно и легко создается. Более того, мы живем в эпоху, когда как раз происходит тектонический сдвиг решаемых с помощью ЭВМ задач от последовательных - к параллельным, от подсчетов - к управлению, от обычных - к системам реального времени (не случайно вошел в активное употребление термин "кибер-физические системы"). Там сложность есть, правда, она другая и в традиционных программистских университетских курсах пока слабо отражена...

TAU, понимаете, для меня ЯП всегда был инструментом выражения мыслей и идей человека, в первую очередь. Именно поэтому, для меня борьба за те 10%, о которых говорят ниже, не очень интересна. От слова совсем. Хотя, в общем-то, я как раз должен был специализироваться на чугунии, но сложилось как сложилось.
Кто дал право? Элементарно - сам взял.
Что же до эрзаца, то все просто - покажите мне дракон схему для вот для этого:
Красно-чёрное дерево
кода там не очень много, если просуммировать, значит и картинка должна получаться не очень большая... ВЕДЬ ТАК?


Из откровений по той ссылке на RSDN


2. Гибридный язык почти полностью сохраняет концепцию, струк-

туру, типы данных и другие особенности целевого языка. В строго

определенном числе случаев текстовая нотация целевого языка за-

меняется на графическую нотацию Дракона. Такой прием позволя-

ет улучшить эргономический облик гибридного языка и повысить

производительность труда программистов.

А зачем нам кузнец? Более того, я бы поостерегся в принципе называть это языком общего назначения: примитивный воркфлоу фреймворк - максимум. ЯП все-таки подразумевает наличие разных дополнительных интересных штук, кроме циклов и ветвлений. Например, систему типов и особенность их "вычисления" (динамическая, статическая, статическая с выведением типов на этапе компиляции). Плюс те или иные способы структуирования программы, как вы думаете почему всем так резко полюбилось в свое время ООП. Плюс работа с памятью, в целом, как там с этим в драконе?

Ну а коль уж вы заговорили о параллельности, то следом идет закономерные вопрос о механизмах ее реализации: механизмы синхронизации, иммутабельные типы, транзакционная память (аля clojure), неблокирующие структуры данных, распределение задач по параллельным "исполнителям" (акторы, мейлбоксы, очереди сообщений, map/reduce). Или они все тоже определяются "особенностями целевого языка"?

ЗЫ. Извините, но вот это чистая секта:

http://rsdn.ru/forum…58.flat.17

В моих терминах это называется так:

Гибридный язык Дракон-С
Гибридный язык Дракон-С++
Гибридный язык Дракон-Java
Гибридный язык Дракон-С#
Гибридный язык Дракон-Python
Гибридный язык Дракон-Tcl
Гибридный язык Дракон-Javascript
Гибридный язык Дракон-Erlang

Я бы с натяжкой согласился считать дракон чем-то серьезным, если бы его драконья сущность в этих связках обладала собственной ценностью, то есть, если бы там не было вставок на "целевом языке" и можно было бы одну и ту же схему транслировать "искаропки" в разный рантайм, но для этого дракон должен был предоставлять сплошной уровень собственных абстракций и стандартную библиотеку, пригодную для написания ПО без залезания в тонкости нижележащего "целевого языка". А так, это вспомогальник для не осиливших "if/while/procedure call".

Если хотите иметь нормальный отечественный язык в качестве объекта поклонения - возьмите 1С. Я серьезно. У него есть рантайм (в виде платформы 1С), он динамически типизированный, с областями видимости переменных, со сборщиком мусора, с фиктивным недоООП и даже с какой-никакой стандартной библиотекой (строки, числа, даты, файлы, FTP/HTTP, работа с другими БД через ODBC, XML).
Отредактировано: mrt789 - 14 мар 2016 12:03:27
Все - яд, все - лекарство...
  • -0.01 / 3
  • АУ
TAU
 
Слушатель
Карма: +53.40
Регистрация: 24.07.2008
Сообщений: 4,227
Читатели: 0
Цитата: adolfus от 14.03.2016 03:14:471. С++ вообще не используется для разработки бортового софта.
2. То, что Ада не представлена широко на просторах бывшего СССР, говорит всего-лишь о том, что на данной территории нет под нее задач. На самом деле в небе, на море, в космосе и в энергетике это основной язык. Из топовых он один умеет параллельные дела. Остальные только через костыли.
3.Код, который генерится из Ады, в разы компактнее, чем из С++ и на порядок компактнее, чем код из-под всех остальных, если есть паралельные дела.

Вы, конечно, извините, буду резок, но справедлив Крутой.
1. Чушь. 
Контрпример - Mars Science Laboratory.


2. Чушь собачья.
У России, напомню (и это вы позволяете себе писать на этом форуме!) есть и "небо", и "космос", и "море". С кораблями, самолетами и космическими аппаратами. И атомная энергетика вполне себе управляемая с помощью АСУ. Что у нас не применяют Аду (хотя мне и известны пара исключений) - скорее исторически сложившееся положение дел, не связанное с объективными преимуществами или недостатками языка. По поводу параллельности - все равно бортовые приложения имеют дело обычно с запросами БОС. Хотя, справедливости ради, в Java параллельность есть.  


3. Прямо таки "в разы"... Доказательства - в студию!
Отредактировано: TAU - 15 мар 2016 02:38:32
  • +0.00 / 0
  • АУ
TAU
 
Слушатель
Карма: +53.40
Регистрация: 24.07.2008
Сообщений: 4,227
Читатели: 0
Цитата: mrt789 от 14.03.2016 08:36:311. Кто дал право? Элементарно - сам взял.
2. Что же до эрзаца, то все просто - покажите мне дракон схему для вот для этого: Красно-чёрное дерево кода там не очень много, если просуммировать, значит и картинка должна получаться не очень большая... ВЕДЬ ТАК?
3. А зачем нам кузнец?
4. Более того, я бы поостерегся в принципе называть это языком общего назначения: примитивный воркфлоу фреймворк


5. ЯП все-таки подразумевает наличие разных дополнительных интересных штук, кроме циклов и ветвлений. Например, систему типов и особенность их "вычисления" (динамическая, статическая, статическая с выведением типов на этапе компиляции)
6. Плюс те или иные способы структуирования программы, как вы думаете почему всем так резко полюбилось в свое время ООП
7. Ну а коль уж вы заговорили о параллельности, то следом идет закономерные вопрос о механизмах ее реализации: механизмы синхронизации, иммутабельные типы, транзакционная память (аля clojure), неблокирующие структуры данных, распределение задач по параллельным "исполнителям" (акторы, мейлбоксы, очереди сообщений, map/reduce). Или они все тоже определяются "особенностями целевого языка"?
8. Я бы с натяжкой согласился считать дракон чем-то серьезным, если бы его драконья сущность в этих связках обладала собственной ценностью, то есть, если бы там не было вставок на "целевом языке" и можно было бы одну и ту же схему транслировать "искаропки" в разный рантайм, но для этого дракон должен был предоставлять сплошной уровень собственных абстракций и стандартную библиотеку, пригодную для написания ПО без залезания в тонкости нижележащего "целевого языка".
9. А так, это вспомогальник для не осиливших "if/while/procedure call".
10. Если хотите иметь нормальный отечественный язык в качестве объекта поклонения

Простите, буду строг. Но справедлив опять же Веселый Разложу сучщность вашего "потока сознания" по полочкам.
1. Ну и сели в лужу публично. Продемонстрировав ограниченность.
2. Еще раз повторю высказанную здесь выше глубокую мысль: каждый инструмент хорош для своих задач. На БелАЗе не стоит участвовать в гонках Формулы-1. Равно как и на дачу ездить на Феррари. У графических языков есть свои вполне оправданные ниши в программировании. Одна из которых - программирование задач логического управления, где много ветвей управляющего графа и требуется тщательное документирование алгоритмов.
3. См. выше. Графическое программирование вполне себя оправдывает в определенных областях.
4. Ваши словечки просто наталкивают на мысль, что с вами просто не о чем разговаривать... Вообще, выделил самые постыдныеяркие "перлы" у вас цветом. Да, кстати, где здесь я называл Дракон "языком общего назначения", не напомните?
5. Ничего подобного. Расширяйте кругозор. Поищите на ключевые слова "бестиповые языки программирования"...
6. ООП в свое время (и до сих пор) "полюбилось" отнюдь не всем. Сами найдете аргументированную критику ООП? Да, и качественное структурирование больших программ вполне возможно и без ООП. И, некоторые считают, даже лучше будет )
7. Это вы пытались с помощью всех этих звонких слов показать свою ученость? Блеснуть эрудицией? Ответ краток: Дракон имеет в своем составе набор примитивов для отражения параллельных вычислений. Реализовано в системе это может быть по-разному. Как, впрочем, и для случая любого иного языка.
8. Дракон, вернее, ГРАФИТ/ФЛОКС уже тем вполне серьезен, что использован в следующих серьезных проектах в космической отрасли:
Разгонный блок ДМ-SL
Разгонный блок Фрегат
Ракета-носитель Протон-М
Разгонный блок ДМ-03
Разгонный блок ДМ-SLБ
Южнокорейская ракета-носитель KSLV-1 (Korean Space Launch Vehicle)

Ракета-носитель Ангара 1.2
Ракета-носитель Ангара-А5
Вы что-либо, хотя бы отдаленно напоминающее по серьезности, сделали в своей жизни???
9. См. выше, что такое Дракон. А ваше высказывание скорее выдает, что многого как раз лично вы "не осилили"...
10. Я не стремлюсь "иметь отечественный язык в качестве объекта поклонения". Не нужно никакое "поклонение" вообще. Я просто стремлюсь к истине. Между прочим, в нашей стране было разработано множество (и вполне неплохих, и оригинальных, и прочая, и прочая!) языков программирования, о чем - прискорбный факт - малообразованные программеры не имеют представления, включая Аналитик, Рефал, РАПИРА, ПИФАГОР, Factor, HiAsm... 
Отредактировано: TAU - 15 мар 2016 02:34:26
  • +0.00 / 0
  • АУ
mrt789
 
Слушатель
Карма: +2.68
Регистрация: 09.01.2010
Сообщений: 2,013
Читатели: 1
Цитата: TAU от 14.03.2016 23:27:14Простите, буду строг. Но справедлив опять же Веселый Разложу сучщность вашего "потока сознания" по полочкам.
1. Ну и сели в лужу публично. Продемонстрировав ограниченность.
2. Еще раз повторю высказанную здесь выше глубокую мысль: каждый инструмент хорош для своих задач. На БелАЗе не стоит участвовать в гонках Формулы-1. Равно как и на дачу ездить на Феррари. У графических языков есть свои вполне оправданные ниши в программировании. Одна из которых - программирование задач логического управления, где много ветвей управляющего графа и требуется тщательное документирование алгоритмов.
3. См. выше. Графическое программирование вполне себя оправдывает в определенных областях.
4. Ваши словечки просто наталкивают на мысль, что с вами просто не о чем разговаривать... Вообще, выделил самые постыдныеяркие "перлы" у вас цветом. Да, кстати, где здесь я называл Дракон "языком общего назначения", не напомните?
5. Ничего подобного. Расширяйте кругозор. Поищите на ключевые слова "бестиповые языки программирования"...
6. ООП в свое время (и до сих пор) "полюбилось" отнюдь не всем. Сами найдете аргументированную критику ООП? Да, и качественное структурирование больших программ вполне возможно и без ООП. И, некоторые считают, даже лучше будет )
7. Это вы пытались с помощью всех этих звонких слов показать свою ученость? Блеснуть эрудицией? Ответ краток: Дракон имеет в своем составе набор примитивов для отражения параллельных вычислений. Реализовано в системе это может быть по-разному. Как, впрочем, и для случая любого иного языка.
8. Дракон, вернее, ГРАФИТ/ФЛОКС уже тем вполне серьезен, что использован в следующих серьезных проектах в космической отрасли:
Разгонный блок ДМ-SL
Разгонный блок Фрегат
Ракета-носитель Протон-М
Разгонный блок ДМ-03
Разгонный блок ДМ-SLБ
Южнокорейская ракета-носитель KSLV-1 (Korean Space Launch Vehicle)

Ракета-носитель Ангара 1.2
Ракета-носитель Ангара-А5
Вы что-либо, хотя бы отдаленно напоминающее по серьезности, сделали в своей жизни???
9. См. выше, что такое Дракон. А ваше высказывание скорее выдает, что многого как раз лично вы "не осилили"...
10. Я не стремлюсь "иметь отечественный язык в качестве объекта поклонения". Не нужно никакое "поклонение" вообще. Я просто стремлюсь к истине. Между прочим, в нашей стране было разработано множество (и вполне неплохих, и оригинальных, и прочая, и прочая!) языков программирования, о чем - прискорбный факт - малообразованные программеры не имеют представления, включая Аналитик, Рефал, РАПИРА, ПИФАГОР, Factor, HiAsm...

Извините, но в случае наличия предмета веры спорить бесполезно. И ровно так, как я стараюсь не трогать АндрейКу на перспективах, не буду спорить и с вами. Ок, пусть у вас будет дракон, а лично я, как бездуховный и никчемный космополит, будут играться с другими игрушками. Более того, я нисколько не соменваюсь, что дракон займет достойное место в приведенном вами списке отечественных языков. Время как обычно рассудит.
ЗЫ. Что же до некоторых "перплов" выделенных вами синими цветом, ну просвещайтесь: http://doc.akka.io/docs/akka/snapshot/scala/mailboxes.html. Не только же адаптам секты дракона изобретать свои собственные понятия и велосипеды :) . За сим предплагаю закончить.

И да, картинку с деревцем все-таки изготовьте, а то как-то совсем не спортивно.... Хотя, если любое сообщение дополнять фразой "не рассматривать как ЯП общего назначения", то претензий не будет - каждый волен конструировать свой велосипед и вспомогальник (поиск серебрянной пули как естественное право).
Отредактировано: mrt789 - 15 мар 2016 11:20:27
Все - яд, все - лекарство...
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: LightElf от 11.03.2016 20:56:38Но просто на всякий случай, в качестве примера подскажу название: tiny C compiler. Который, что характерно, обходится и без объектного кода и без линковщика и без ассемблера. Без единого гвоздя, исключительно с божьей помощью.

Итак, как и обещал: продемонстрируем, как tiny C обходится без линковщика. Согласно диванным знатокам.


Ссылку на документацию на tiny C я давал ранее, вот конкретно на опции командной строки:
http://bellard.org/tcc/tcc-doc.html#SEC2


Цитата: Цитата`tcc -o myprog a.c b.c'
Compile `a.c' and `b.c', link them and generate the executable `myprog'.
...

`tcc -c a.c'
Compile `a.c' and generate object file `a.o'.



Т.е. опция -c - это просто компиляция в объектный файл без линковщика, а опция -o - это компиляция и линкование в исполняемый объектный файл.

В качестве сорса пользуем файл tcctest.c с таким содержанием:


Цитата: Цитата#include <stdio.h>


int main()
{
    printf("Hello World!\n");
    return 0;
}





Несложно, не правда ли? И файл единственный, чтобы сразу убрать у диванных знатоков возможность возражать типа "а более одного файла надо линковать" и т.п.

Далее результаты для Вынь и Линуха.

Windows


Скрытый текст



Linux


Скрытый текст

Необязательную опцию -v я использовал чтобы tcc "не молчал" во время исполнения команд, что он делает без вербализации.

С опцией -run (в конце каждого теста) - стандартное использование tiny C, для чего он и был изначально создан: компилирование, линковка и запуск исходников на С, все в оперативной памяти, "на лету", без генерации промежуточных файлов на HDD. 
Отредактировано: Lapsha - 15 мар 2016 11:37:37
  • +0.00 / 0
  • АУ
ps_
 
Слушатель
Карма: +11.56
Регистрация: 04.04.2009
Сообщений: 3,811
Читатели: 2
Тред №1072240
Дискуссия   115 0
Как говорил ослик Иа-Иа "душераздирающее зрелище" Плачущий
Сначала появился любитель Паскаля - оттоптались
Потом появился любитель Ады, как самого лучшего языка всех времен и народов - вроде победили
Сейчас спорят, о том, чем отличается объектный файл от программы и может ли компилятор сразу сделать программу

И это вместо того, чтобы обсуждать как можно программировать для систем с сотней ядер и нескольких тысяч вычислительных блоков (куда все собственно и идет, поскольку сложность и частоту процессоров современная индустрия не может дальше увеличивать) А если они ПЛИС-ки в процессоры встраивать начнут Шокированный
  • +0.02 / 1
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: LightElf от 15.03.2016 15:39:50Нам, диванным знатокам, совершенно непонятно о чем вообще ваш пост и какое отношение он имеет к теме дискуссии, заданной вашим же утверждением


Я вам указал на компилятор языка C, который не написан на ассемблере и не является "оберткой" ассемблера (поскольку без ассемблера прекрасно обходится).


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

О том, что tiny C не имеет линковщика и линковщик вообще не нужен компиляторам - это вообще не о Вас, - не так ли?Улыбающийся


Цитата: Цитата: LightElf от 15.03.2016 02:39:50Можете просто заглянуть в исходник самый древний TCC и убедиться, что там нет ни ассемблера, ни линкера.


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


Это не "самый древний TCC", это Беллард рассказывает об Obfuscated Tiny C Compiler, который он написал для участия в междунардном конкурсе трудночитаемого С кода (International Obfuscated C Code Contes).

Вот рассказ Белларда:
http://bellard.org/otcc/

Вот ссылка на сайт конкурса со всеми правилами и т.п.:
http://www.ioccc.org/

В первой ссылке Беллард рассказывает о требованиях к коду (должен не превышать 2048 байт, не считая символы ';', '{', '}'  и пробелы), и должен уметь скомпилить свой собственный код. И - все.
Это вообще не компилятор С, а некая игрушка для конкурса. Остроумная и нетривиальная, но - игрушка. Беллард просто рассказывает, с чего все началось.

А компилятора tiny C без линковщика никогда не было.

Цитата: Цитата: LightElf от 15.03.2016 02:39:50Хотя конечно ссылки на внешние функции (если они есть в программе) приходится разруливать. Можете считать это линковкой.


Это и есть линковка. И она называется линковкой везде в мире. В том числе и в официальной документации tiny C. И в любой другой документации любого компилятора языка высокого уровня.

Как видите, без линковки объектный файл не выполняется. Отчего-то.
Отредактировано: Lapsha - 15 мар 2016 20:54:07
  • +0.00 / 0
  • АУ
TAU
 
Слушатель
Карма: +53.40
Регистрация: 24.07.2008
Сообщений: 4,227
Читатели: 0
Цитата: mrt789 от 15.03.2016 07:58:20Извините, но в случае наличия предмета веры спорить бесполезно. И ровно так, как я стараюсь не трогать АндрейКу на перспективах, не буду спорить и с вами. Ок, пусть у вас будет дракон

Вы вообще неспособны, по всей видимости, улавливать смысл адресованных вам высказываний на русском языке. Или намеренно отбрасываете. Как говорится, "глядит в книгу - видит...".
Еще раз:
Лично я не являюсь никаким "адептом" никакой "секты". А стремлюсь всего лишь к максимально возможному приближению к истине. 
Как говорится, "не сотвори себе кумира". При рассмотрении технического инструментария важно посмотреть с разных сторон, выделить сильные и слабые стороны, оценить применимость для решения конкретной задачи. Например, в Драконе мне не нравится многое, начиная с названия. 
При этом упорно и слепо отрицать возможность и эффективность применения визуальных языков программирования при решении, например, задач управления - ваш выбор, ну что ж. Знаю ситуацию в индустрии, и могу ответственно заявить: применяются они при решении весьма важных и ответственных задач. Которые непохожи на вычислительные (впрочем, и для вычислений) или на программирование веб-интерфейсов, но имеют свои собственные истоки сложности.
  • +0.00 / 0
  • АУ
Lapsha
 
Слушатель
Карма: -2.16
Регистрация: 10.01.2016
Сообщений: 356
Читатели: 0
Цитата: LightElf от 16.03.2016 09:47:16Знатный специалист придумал какую-то херню ...

Иди, иди, солдатик!

Больно интересно все это опять перемешивать с подобными знатоками.
  • +0.00 / 0
  • АУ
adolfus
 
Слушатель
Карма: +18.98
Регистрация: 12.02.2010
Сообщений: 12,011
Читатели: 2
Цитата: Valery от 14.03.2016 03:53:39Предлагаю простой тест.
Делаем аналогичные коды на С, С++, Ada, Modula-2... И результат рассматриваем через IDA (Interactive DisAssembler).

Вы наверное из прошлого? Какая такая IDA? Она умеет потоки и защищенный режим x86_64?
  • +0.00 / 0
  • АУ
Поверонов
 
Слушатель
Карма: +38.59
Регистрация: 05.06.2010
Сообщений: 19,881
Читатели: 8
Цитата: kisur от 13.03.2016 03:00:19Далее.
Мы все знаем про такой ресурс как вики. У всех свое отношение. Но сама идея получения информации считаю верная.
Создаем сайт, на котором каждая лексическая конструкция любого из существующих языков будет представлена в алгоритмическом представлении, асемблерном, машинном (с возможностью к привязки к конкретной среде исполнения)
Все выдающиеся умы человечества могут представить свой алгоритм или код для выполнения той или иной элементарной задачи. Далее в ходе обсуждения будет выставляться экспертный рейтинг.
Представляете какой продукт будет получаться на выходе? А на сколько сократится время разработки? Ведь отладка новой задачи занимает уйму времени и надо наработать статистику.
Даже если начинающий программер, который только написал привет мир, сразу может получить доступ к бриллиантам.
Или пишу я допустим на С а надо получить питоновский код (это абстракция). Захожу на сайт, кидаю туда свою текстовку. Мне вываливает список замечаний и уже примеры готовых решений. Я исправляю.
Или надо мне, чтобы программа работала на новой архитектуре. Выбираю где надо и получаю исполнимый файл на основании компилятора, который был вылизан коллективом единомышленников более чем пускай миллион и обкатан на еще большем количестве задач в течении надцати лет.
В результате произойдет естественный отбор идей и методов решения и в нашей жизни (а главное в жизни юзверей) станет меньше поводов рвать на пятой точке волосы.

Так пишут open-source. Таких сайтов полно. Каждый может сделать свой fork и доделать, если есть что. Но за open-source НЕ ПЛАТЯТ. Это хобби. Более того по лицензиям каждый кто доработал open-source обязан эту доработку опубликовать. Такой код не может стать проприетарным. Фирмы не могут продавать продукты на его основе. Только поддержку. На этом пути множество программеров может лишиться своего куска с маслом. А пока им безработица не грозит. В школах всё хуже с математикой.
  • +0.00 / 0
  • АУ
Александр Орефков
 
Слушатель
Карма: -0.09
Регистрация: 29.07.2014
Сообщений: 214
Читатели: 0
Цитата: Поверонов от 17.03.2016 09:25:28Фирмы не могут продавать продукты на его основе. Только поддержку

Тут Вы глубоко ошибаетесь.
Насколько я помню, ни одна из распространённых open-source лицензий не запрещает продавать продукты на основе открытого кода.
Самая известная оговорка на этот счёт - "free as freedom, not as free beer" - "свободное, а не бесплатное".
Просто большинство лицензий требуют предоставлять покупателю исходники продукта.
А многие лицензии и этого не требуют.
Все ведь продают смартфоны, роутеры, телевизоры и т.п., хотя внутри крутится open-source'ный линукс.
  • +0.00 / 0
  • АУ
Поверонов
 
Слушатель
Карма: +38.59
Регистрация: 05.06.2010
Сообщений: 19,881
Читатели: 8
Цитата: Александр Орефков от 17.03.2016 11:16:49Тут Вы глубоко ошибаетесь.
Насколько я помню, ни одна из распространённых open-source лицензий не запрещает продавать продукты на основе открытого кода.
Самая известная оговорка на этот счёт - "free as freedom, not as free beer" - "свободное, а не бесплатное".
Просто большинство лицензий требуют предоставлять покупателю исходники продукта.
А многие лицензии и этого не требуют.
Все ведь продают смартфоны, роутеры, телевизоры и т.п., хотя внутри крутится open-source'ный линукс.

Уточню. Использование открытого кода возможно ( компиляция и применение ) без ограничений, но и продать такой скомпилированный код как продукт становится невозможным так как он всем доступен бесплатно, поэтому продают поддержку - пример mySQL. А вот доработать ( изменить код и добавить свой ) и продать - лицензия запрещает, так как требует публикации такого измененного кода как тоже открытого. Поэтому брать свободный код как основу для развития своего коммерческого продукта бесперспективно - можно погореть в судебном иске. Западные фирмы этого тщательно избегают. Это однако не мешает им использовать свободные программы ( скомпилированный открытый код ) в составе своих пакетов, но со ссылкой на их независимую загрузку пользователем по отдельной лицензии.
При поставках "железа" продается только "железо", а свободный софт добавляется как бесплатное функциональное наполнение.
Отредактировано: Поверонов - 17 мар 2016 15:51:43
  • +0.00 / 0
  • АУ
Сейчас на ветке: 5, Модераторов: 0, Пользователей: 0, Гостей: 1, Ботов: 4