Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
kaheu
34 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 246
#1

Какие есть компиляторы c++ без изменения синтаксиса - C++

27.07.2014, 12:19. Просмотров 1373. Ответов 37
Метки нет (Все метки)

какие есть компиляторы c++ без изменения синтаксиса?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2014, 12:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Какие есть компиляторы c++ без изменения синтаксиса (C++):

Какие компиляторы (или среды) поддерживают с++ 11? - C++
У меня wxDev c++ билд 7.4. я понятия не имею какой там с++. компиляторы от default GCC до default VS2010 Пытался прописать команды типо...

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе - C++
Для каждого из четырех классов указаны имена девочек, обучающихся в них. Определить, какие из этих имен встречаются во всех классах, какие...

Компиляторы. Какие преимущества между "кнопкой" и консолью? - C++
В наличии два компилятора: от vs и intel с оболочками и консоли. Какие преимущества между "кнопкой" и консолью?

Возможно ли как-то в Visual Studio 2010 проверять есть ли утечки памяти? Может есть какие-то специальные плагины для этого? - C++
Название темы отражает суть вопроса.

Как узнать какие изменения произошли в 2 документах - C++
Добрый день! я не являюсь программистом и навыков у меня как токовых нет( Но очень нужна ваша помощь и надеюсь что нормально отнесетесь...

Какие нужно делать изменения в программах, если изучаешь С++ по старым книгам - C++
Здравствуйте! Периодически сталкиваюсь с примерами, которые не работают из старых но многими рекомендуемых книг, или с разных форумов. ...

37
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
28.07.2014, 19:41 #16
Цитата Сообщение от Evg Посмотреть сообщение
При этом стандарт языка Си никак не может запретить gnu'шника (да и другим разработчикам) разрабатывать собственный стандарт языка
Запретить, конечно, не может. Но если они изменят семантику, к примеру, try-catch, можно сразу и навсегда выкинуть сие... хм, поделие на мороз.

Вообще, это было первое, чему меня научили в Си++ (раньше чем using namespace std; ) - всё, что non-standart, - сразу в топку. А в стандарте ясно написано: любые изменения стандарта автоматически non-standart (привет, кэпы из ISO).
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
28.07.2014, 19:49 #17
Одно дело, когда функция/оператор существует лишь для реализации компилятора и стандартной библиотеки, и другое, когда их делают для использования сторонними разработчиками. typeof и __typeof__, как мне кажется, наглядный пример. Именно это я и хотел сказать изначально. Не пойму, при чем тут изменение синтаксиса.
0
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,041
28.07.2014, 19:50 #18
Цитата Сообщение от CyberSolver Посмотреть сообщение
всё, что non-standart, - сразу в топку
Очень часто на необоснованно категоричные высказывания находится контрпример. Я просто напомню, что есть такой компилятор - nvcc (CUDA Toolkit), который как раз добавляет нестандартные расширения в язык. Не стоит все подряд отправлять "в топку".
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
28.07.2014, 19:51 #19
Цитата Сообщение от 0x10 Посмотреть сообщение
Очень часто на необоснованно категоричные высказывания находится контрпример. Я просто напомню, что есть такой компилятор - nvcc (CUDA Toolkit), который как раз добавляет нестандартные расширения в язык.
Ну и тот же linux kernel, который везде и по всякому использует расширения gcc. И таких примеров куча.
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
28.07.2014, 20:04 #20
Цитата Сообщение от 0x10 Посмотреть сообщение
Я просто напомню, что есть такой компилятор - nvcc (CUDA Toolkit), который как раз добавляет нестандартные расширения в язык.
Ну так и пусть добавляет на здоровье. Только это и будет компилятор не C89 и не C99, а какой-то солянки Си с фичами nVidia. Топикстартер ведь говорил про расширение языка в смысле изменения семантики, а таких компиляторов просто нет.
0
0x10
28.07.2014, 20:15
  #21

Не по теме:

Цитата Сообщение от CyberSolver Посмотреть сообщение
Топикстартер ведь говорил про расширение языка в смысле изменения семантики
По постам автора, я не уверен, что он сам знает о чем говорит.

0
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
28.07.2014, 21:10 #22
Цитата Сообщение от CyberSolver Посмотреть сообщение
Запретить, конечно, не может. Но если они изменят семантику, к примеру, try-catch, можно сразу и навсегда выкинуть сие... хм, поделие на мороз.
Понятие "расширение" подразумевает введение дополнений, а не изменение существующих конструкций

Цитата Сообщение от CyberSolver Посмотреть сообщение
Вообще, это было первое, чему меня научили в Си++ (раньше чем using namespace std; ) - всё, что non-standart, - сразу в топку. А в стандарте ясно написано: любые изменения стандарта автоматически non-standart (привет, кэпы из ISO).
Об чём и идёт речь с самого начала. Вопрос только в том, что такое non-standard. Для эксперта этот вопрос затруднений не вызывает. А новичку далеко не сразу и не везде понятно, что есть стандарт, а что нет. Потому ТС и спросил, как сие возможно проконтролировать в автоматическом режиме, а не в режиме постоянного чтения стандартов

Цитата Сообщение от Toshkarik Посмотреть сообщение
Одно дело, когда функция/оператор существует лишь для реализации компилятора и стандартной библиотеки, и другое, когда их делают для использования сторонними разработчиками. typeof и __typeof__, как мне кажется, наглядный пример
Это не так. Этим расширением пользуется множество разработчиков, выпускающих программные продукты, которые поставляют дополнительные хидеры. Т.е. разработчики библиотек. А так же разработчики ядра линукса (потому что ядро поставляет множество инклюдов в user-space). А может кто-то ещё. В любом случае новичок, увидевший где-то использование typeof и попробовавший его на gcc, далеко на сразу поймёт, что сие есть расширение языка C, а не стандартный C
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
28.07.2014, 21:15 #23
Видать, опять неправильно поняли. Я имел ввиду, что typeof - расширение для сторонних разработчиков, а __typeof__ - для внутренней реализации. Хоть они и выполняют одно и то же. Возможно, даже один является макросом другого.
0
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
28.07.2014, 22:51 #24
Нет. Точно так же __typeof__'ом пользуются все. К тому же glibc (которая является системной библиотекой) НЕ является частью компилятора. Как минимум это говорит о том, что __typeof__ - это не внутреннее расширение, а для широкого использования

Добавлено через 1 час 27 минут
Цитата Сообщение от CyberSolver Посмотреть сообщение
Топикстартер ведь говорил про расширение языка в смысле изменения семантики
К слову говоря, такого он вовсе не говорил. Это уже ты за него придумал
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
29.07.2014, 06:42 #25
Цитата Сообщение от Evg Посмотреть сообщение
К слову говоря, такого он вовсе не говорил. Это уже ты за него придумал
Цитата Сообщение от 0x10 Посмотреть сообщение
Не по теме:
Сообщение от CyberSolver
Топикстартер ведь говорил про расширение языка в смысле изменения семантики
По постам автора, я не уверен, что он сам знает о чем говорит.
По поводу гнусных расширений и не только - я бы использовал только в каких-то библиотечных файлах для оптимизации (для чего-то эти расширения же придумали). Но я бы их обернул во что-то, что хотя бы потенциально может быть перенесено на другие платформы. Про glibc и linux kernel - поскольку конечный юзер напрямую их почти не использует (а если использует, явно понимает, что к чему), пусть пишут там что душе угодно. Но по мне так это порочная практика. Как же принцип мира Unix: жертвуй производительностью ради переносимости? gcc со своими расширениями, конечно, переносимый, но это какая-то узкая трактовка понятия "переносимость". Ну и может я ламер, но я ещё не встретил в жизни ситуации, когда мне позарез нужны были расширения компилятора.

Может, кто-то поделится примерами из практики?
0
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,041
29.07.2014, 07:55 #26
Цитата Сообщение от CyberSolver Посмотреть сообщение
я ещё не встретил в жизни ситуации, когда мне позарез нужны были расширения компилятора
В большей части прикладного кода они и не встетятся.
Пример из стандартной библиотеки - реализация type_traits.
http://en.cppreference.com/w/cpp/types
https://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html#Type-Traits
0
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
29.07.2014, 09:06 #27
Цитата Сообщение от CyberSolver Посмотреть сообщение
Как же принцип мира Unix: жертвуй производительностью ради переносимости?
Сколько десятилетий назад провозгласили этот принцип? И насколько с тех пор изменился мир? И вообще, были ли в то время такие понятия, как "задача реального времени"?
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
29.07.2014, 19:19 #28
Цитата Сообщение от 0x10 Посмотреть сообщение
Пример из стандартной библиотеки - реализация type_traits.
Ээээээ. Ну кагбэ Александреску всё это сделал 100500 лет назад в своей Loki. На том же cpprefernece Possible implementation почти копирует его код (ну кроме всяких remove_reference). Так что мимо.

Добавлено через 6 минут
Цитата Сообщение от Evg Посмотреть сообщение
Сколько десятилетий назад провозгласили этот принцип?
Примерно 40. Фортрану поболе будет. Да и Лиспу. Думаю, постарше вас.
Цитата Сообщение от Evg Посмотреть сообщение
И насколько с тех пор изменился мир?
Нинасколько. Всё так же Си, всё те же яйца. Только теперь куча придурков решило: раз венда - это 90% рынка, а она только под Intel, то и нафиг все эти ваши Linux и ARM. Дружно все пишем на шарпе. Или уэб-интерфейсы. А хто самый умный, тому невероятно переносимая Java.
Цитата Сообщение от Evg Посмотреть сообщение
вообще, были ли в то время такие понятия, как "задача реального времени"?
=-O Вы меня, конечно, извините, но вы вроде эксперт Си++, а морозите какую-то чушь.
0
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,041
29.07.2014, 19:26 #29
Цитата Сообщение от CyberSolver Посмотреть сообщение
ну кроме всяких
Я и не сказал, что трейтсы должны быть на 100% реализованы на расширениях компилятора. Часть их используют (has_trivial_[constructor|destructor|etc...])
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
29.07.2014, 19:34 #30
Цитата Сообщение от 0x10 Посмотреть сообщение
Я и не сказал, что трейтсы должны быть на 100% реализованы на расширениях компилятора.
Вообще, про то и речь: все traits давно реализованы на чистых шаблонах уже лет 10-15 как. Здесь та же ситуация, что с Boost: творения всяких маньяков типа Александреску попадают в стандарт. (Даже странно, что в Си++11/14 не добавили сериализацию, в бусте давно есть).

Так что мало того что всё это не требует никаких расширений компилятора вообще, так и возникает вопрос: а зачем вам столько информации о типах на этапе компиляции?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2014, 19:34
Привет! Вот еще темы с ответами:

Какие независимые друг от друга изменения позволят коду отработать корректно? - C++
Какие независимые друг от друга изменения позволят коду отработать корректно: class Сountеr { public: // 1 void Count(); // 2 };...

Инкапсулировать без серьезного изменения..возможно ли? - C++
#include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; class list_block { ...

Какие книги есть по Си++? - C++
Чтобы там было как создать класс-динамический массив. И желательно чтобы эти книги были в интернете:)

Какие есть ошибки в коде? - C++
Добрый день. Сейчас было небольшое собеседование и одна из задачек была такая /* What problems do you see in this code */ class A...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
29.07.2014, 19:34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru