~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/sp_SP/process/programming-language.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. include:: ../disclaimer-sp.rst
  2 
  3 :Original: :ref:`Documentation/process/programming-language.rst <programming_language>`
  4 :Translator: Carlos Bilbao <carlos.bilbao.osdev@gmail.com>
  5 
  6 .. _sp_programming_language:
  7 
  8 Lenguaje de programación
  9 ========================
 10 
 11 El kernel está escrito en el lenguaje de programación C [sp-c-language]_.
 12 Más concretamente, el kernel normalmente se compila con ``gcc`` [sp-gcc]_
 13 bajo ``-std=gnu11`` [sp-gcc-c-dialect-options]_: el dialecto GNU de ISO C11.
 14 ``clang`` [sp-clang]_ también es compatible, consulte los documentos en
 15 :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
 16 
 17 Este dialecto contiene muchas extensiones del lenguaje [sp-gnu-extensions]_,
 18 y muchos de ellos se usan dentro del kernel de forma habitual.
 19 
 20 Hay algo de soporte para compilar el núcleo con ``icc`` [sp-icc]_ para varias
 21 de las arquitecturas, aunque en el momento de escribir este texto, eso no
 22 está terminado y requiere parches de terceros.
 23 
 24 Atributos
 25 ---------
 26 
 27 Una de las comunes extensiones utilizadas en todo el kernel son los atributos
 28 [sp-gcc-attribute-syntax]_. Los atributos permiten introducir semántica
 29 definida por la implementación a las entidades del lenguaje (como variables,
 30 funciones o tipos) sin tener que hacer cambios sintácticos significativos
 31 al idioma (por ejemplo, agregar una nueva palabra clave) [sp-n2049]_.
 32 
 33 En algunos casos, los atributos son opcionales (es decir, hay compiladores
 34 que no los admiten pero de todos modos deben producir el código adecuado,
 35 incluso si es más lento o no realiza tantas comprobaciones/diagnósticos en
 36 tiempo de compilación).
 37 
 38 El kernel define pseudo-palabras clave (por ejemplo, ``__pure``) en lugar
 39 de usar directamente la sintaxis del atributo GNU (por ejemplo,
 40 ``__attribute__((__pure__))``) con el fin de detectar cuáles se pueden
 41 utilizar y/o acortar el código.
 42 
 43 Por favor consulte ``include/linux/compiler_attributes.h`` para obtener
 44 más información.
 45 
 46 .. [sp-c-language] http://www.open-std.org/jtc1/sc22/wg14/www/standards
 47 .. [sp-gcc] https://gcc.gnu.org
 48 .. [sp-clang] https://clang.llvm.org
 49 .. [sp-icc] https://software.intel.com/en-us/c-compilers
 50 .. [sp-gcc-c-dialect-options] https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
 51 .. [sp-gnu-extensions] https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
 52 .. [sp-gcc-attribute-syntax] https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
 53 .. [sp-n2049] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php