— правильно понимаю что под posix C понимается cтандартная библиотека Posix (ISO/IEC 9945:2003) , т.е. регламентирование вызовов api, ipc и тд и тп ?
— что понимается под posix С++ ? (программа с классами и шаблонами использующая стандартную библиотеку Posix ?)
— глобальные отличие ANSI C от Posix С можно в двух словах (правильно понимаю что ansi — семантика языка, а posix — надстройка над семантикой ввиде api и др.?)
T>- правильно понимаю что под posix C понимается cтандартная библиотека Posix (ISO/IEC 9945:2003) , т.е. регламентирование вызовов api, ipc и тд и тп ?
ну видимо да, семантика всяких mmap и т.п.
правда тут есть тонкая грань. В posix C ты можешь написать что-то вроде popen("awk '{ print $1 }'") и таким образом ты затронешь уже спецификацию шелла и утилит.
T>- глобальные отличие ANSI C от Posix С можно в двух словах (правильно понимаю что ansi — семантика языка, а posix — надстройка над семантикой ввиде api и др.?)
POSIX -- это общий стандартный API (и ABI наверное) для приложений,
реализуемый в разных операционных системах. Интерфейс приложения с операционой
системой. Сам API как бы выражен на языке С, но на самом деле ни к какому
языку он отношения не имеет, ни к С, ни к С++. Максимум что С -- это
язык его реализации и спецификации.
Так что ничего кроме первого ты не понимаешь правильно.
Здравствуйте, tasko, Вы писали:
T>Ряд глупых вопросов
T>- правильно понимаю что под posix C понимается cтандартная библиотека Posix (ISO/IEC 9945:2003) , т.е. регламентирование вызовов api, ipc и тд и тп ?
C POSIX Library — набор API языка С для взаимодействия приложения и операционной системы. Именно,
Definitions for system service functions and subroutines, language-specific system services for the C programming language, function issues, including portability, error handling, and error recovery, are included in the System Interfaces volume of POSIX.1-2008.
T>- что понимается под posix С++ ? (программа с классами и шаблонами использующая стандартную библиотеку Posix ?)
Нет такого. "Под крылом" Redhat tсть POSIX C++ Study Group -- товарищи обсуждают, нужны ли языку С++ стандартные интерфейсы с POSIX-совместимыми ОС. Сами интерфейсы отсутствуют даже в проекте.
T>- глобальные отличие ANSI C от Posix С можно в двух словах (правильно понимаю что ansi — семантика языка, а posix — надстройка над семантикой ввиде api и др.?)
ANSI C — это устаревший термин. Сейчас язык называется ISO C, последняя версия С99. Стандарт определяет семантику языка и набор стандартных интерфейсов ("стандартная библиотека языка С"):
<assert.h>
<complex.h>
<ctype.h>
<errno.h>
<fenv.h>
<float.h>
<inttypes.h>
<iso646.h>
<limits.h>
<locale.h>
<math.h>
<setjmp.h>
<signal.h>
<stdarg.h>
<stdbool.h>
<stddef.h>
<stdint.h>
<stdio.h>
<stdlib.h>
<string.h>
<tgmath.h>
<time.h>
<wchar.h>
<wctype.h>
C POSIX library включает С99 и содержит дополнительные заголовки. Вместе с расширениями и устаревшими символами содержит 1191 интерфейс
T>Заранее спасибо.
Пожалуйста.
Здравствуйте, tasko, Вы писали:
T>dilmah, MasterZiv, npak спасибо за разъяснения.
>> последняя версия С99 T>думал что последним считается от 2003 года с tr1 , да не суть
Здравствуйте, shasa, Вы писали:
S>Здравствуйте, tasko, Вы писали: T>>Ряд глупых вопросов S>...
S>Разъясните пожалуйста значение термина семантика языка
T>>Заранее спасибо.
Семантика языка бывает статическая и динамическая. Статическая семантика накладывает ограничения на синтаксически корректные программы. Например, грамматика языка С допускает такой декларатор:
unsigned short void x;
но в стандарте есть семантическое ограничение (6.7.2.) на то, какие деклараторы допустимы в программе. Другой пример статической семантики — ограничения на декларацию структуры:
A structure or union shall not contain a member with incomplete or function type (hence,
a structure shall not contain an instance of itself, but may contain a pointer to an instance
of itself),
Статическая семантика обычно используется в парсере/семантическом анализаторе.
Динамическая семантика определяет, как должны исполняться конструкции языка. Например:
The statement
[b]for[b] ( clause-1 ; expression-2 ; expression-3 ) statement
behaves as follows: The expression expression-2 is the controlling expression that is evaluated before each execution of the loop body. The expression expression-3 is evaluated as a void expression after each execution of the loop body. If clause-1 is a declaration, the scope of any variables it declares is the remainder of the declaration and the entire loop, including the other two expressions; it is reached in the order of execution before the first evaluation of the controlling expression. If clause-1 is an expression, it is evaluated as a void expression before the first evaluation of the controlling expression.
Динамическая семантика требуется разработчикам оптимизаторов и кодогенератора.