Publicado hace 7 años por RubiaDereBote a lars-lab.jpl.nasa.gov

Estándar interno que tiene el departamento Jet Propulsion Laboratory (JPL) de la NASA para la programación en C de sus sistemas.

Comentarios

AlphaFreak

#35 Por no hablar de la decisión política (o de "gestión") de reutilizar el software del Ariane-4 tal cual...

D

#4 Deja de hacer el ridículo.

Thelion

#26 Eso iba a poner, que programen en Ada.

D

#32 Que yo sepa fue por una junta que no soporto las bajas temperaturas de un deposito y como que una fuga de hidrógeno teniendo un mechero gigante cerca no es buena idea. lol

D

#31 Si, yo también pensé en ADA, pero luego dije: Vaya, quizás no es soportado en los micros que utilizan.

D

#26
No hay nada como el Ook!.

nomada_isleño

#33 Aquí en MNM se es más del Hodor... http://www.hodor-lang.org/

brainsqueezer

#16 #26 Nadie ha dicho que solamente programen en C. Cualquier proyecto mas o menos grande acaba teniendo código en diferentes lenguajes. Ni hablemos cuando se trata de cientos de proyectos.

Creo que este documento debe abordarse más con el objetivo de hacer que el código no falle, que debatir cual es el mejor lenguaje.

D

#49 definir una función es lo mismo que definir un puntero constante a ella. Claro que tiene sentido la restricción, de hecho existen otros lenguajes que tienen esa restricción implícita. La cuestión es por qué no usan esos directamente, que es en lo que estamos y que ya hay bastante comentado.
#27
Hasta ahí llegamos. En C se puede hacer de todo, para lo bueno y para lo malo.
No deben tener sencillo traducir desde otros lenguajes de tipado más robusto a C.
#21 sip, tiene sentido, yo me apunto a esa tesis. Ahora solo falta que alguien que trabaje en la nasa nos lo confirme
#57 sin acritud: tu compara tu aporte al debate con los del resto.
#52 cientos de proyectos y decenas de lenguajes los tiene una empresa grande sin necesidad de tener perfil tecnológico. En la nasa deben moverse en un orden de magnitud de miles o cientos de miles. Sería interesante ver el ciclo completo de SQA; las reglas de codificación son solo una pequeña parte y supongo no la más importante.

NapalMe

#71 Sin acritud, si no entendiste el mensaje detrás del sarcasmo es tu problema.
Por si no lo pillas, estoy seguro que esa gente tiene una razón perfectamente lógica para cada punto de ese estándar, y he usado el sarcasmo para mostrar la gracia que me ha hecho tu amago de duda al respecto.
PD. Por cierto, muy bonito lo de editar el mensaje.

D

#72 lo pillo perfectamente. Como en la nasa no son tontos, el tonto soy yo por cuestionar.
Que soy tonto lo tengo asumido desde que suspendí el primer examen y corté con la primera novia. Pero no suelo entrar a discutir esas cosas, como comprenderás. Ni lo de editar.
MNM es libre, cada uno se mueve aquí como quiere. Lo de sin acritud era sincero.

NapalMe

#76 Si estas dando a entender que te he llamado tonto a ti estas suspendido en lógica, decir que la NASA no es tonta no implica que lo seas tu, así que no vengas con falsos victimismos.
He dicho que me hace gracia que lo cuestiones, nada mas, pero como has editado tu comentario, las respuestas dejan de tener sentido.
Un saludo.

D

#87 no te preocupes, no me he ofendido. No tiene importancia.
No he editado, pero eso tampoco la tiene.

NapalMe

#96 Entonces me habré confundido, te pido disculpas.

D

#44 el goto se debe usar siempre que sea necesario. Es decir: nunca.
#22 está por ver todavía el primer centro de desarrollo donde tengan recursos para hacer todo lo que quieran y más.
#71 lo pillo perfectamente. Como en la nasa no son tontos, el tonto soy yo por cuestionar.
Que soy tonto lo tengo asumido desde que suspendí el primer examen y corté con la primera novia. Pero no suelo entrar a discutir esas cosas, como comprenderás. Ni lo de editar.
MNM es libre, cada uno se mueve aquí como quiere. Lo de sin acritud era sincero.

perro_marron

#71 por la inmensa cantidad de herramientas que existen para c y para ningun otro lenguaje. Si consideras c como una especie de ensamblador todo cobra sentido. Muchos de los que trabajamos en sistemas empotrados usamos c pensando en el codigo que genera en lugar de la filosofia del lenguaje, que es lo que tocaria realmente.

D

#26 Dicen que uno de los grandes retrasos y sobrecostes del programa J35 es por el Ada. El leguaje estará todo lo bien que quieran, pero no tiene el soporte de un buen IDE, entornos de desarrollo y depuradores que tiene el C.

slowRider

#26 siempre me ha llamado la atención el poco exito que tuvo ada, incluso en los sectores hacia donde estaba dirigido, todavia veo gente que programa en pl/1 pero de ada nunca mas se supo.

Findeton

#17 Esta gente tiene suficientes recursos como para mantener su propio compilador, diría yo.

Findeton

#23 Esta es una de las muchas cosas que fastidian de C y C++: Undefined Behaviour. Por eso me gusta Rust, pero le queda un larguísimo camino todavía...

kolme

#23 ¿Qué tiene vim que ver con la chapuza?

D

#58 Una regla que se erifica casi al 100% es que si tu editor o tu IDE es una mierda, tu código será una mierda. Da igual lo bueno que te creas.

kolme

#89 Te queda mucho por aprender, pequeño Padawan. lol

kolme

#23 ¿Y qué tiene el editor que ver con que el resultado sea una chapuza?

C

#23 Alguna referencia sobre la initialización a cero de gcc?

perro_marron

#81 eso no tiene nada que ver con gcc, la especificacion es clara.

D

#22 En absoluto. El presupuesto de la NASA va ajustadísimo, y crear (y mantener) un compilador consistente que genere código decente no es moco de pavo, y menos cuando hablamos de un animal tan difícil de domar como C.

Findeton

#16 Pues porque C está probado, porque el hardware que tienen soporta C y lo mismo no soporta Rust, y porque hay programas que analizan el código de C y comprueban que no tiene multitud de tipos de errores (validación formal), cosa que con otros lenguajes no ocurre.

Shotokax

#21 el hardware no soporta C, solo soporta binario.

Findeton

#28 Correcto, me refería a que a menudo no hay soporte/compiladores para otros lenguajes más extraños o novedosos, como Rust.

D

#30 Una pregunta (parece que usted controla): ¿soporta rush recolección de memoria?

Findeton

#54 Supongo que te refieres a la diferencia entre lenguajes como C/C++ donde se realiza una gestión manual de la memoria y lenguajes como Java o Javascript que hacen uso de recolectores de basura. Rust es como C/C++ en ese aspecto, y en principio tienes que hacer tú mismo el trabajo sucio. Eso me gusta. Por supuesto, si quieres hacer uso de un recolector de basura, también puedes, no tienes más que usar alguna librería para ello (igual que en C++).

D

#64 Si, exacto roll

D

#21 "cosa que con otros lenguajes no ocurre"
No es cierto. Muchos lenguajes lo tienen, además de suites de test variadas.

Findeton

#40 No he especificado de qué otros lenguajes hablo, ni a qué dispositivos/hardware me refiero, así que tú digas que no es cierto me parece sorprendente.

D

#60 Has generalizado sin especificar, por lo que yo he respondido generalizando.

Findeton

#61 Es difícil generalizar especificando lol. La cosa es que Para muchos dispositivos hardware, el número de herramientas, compiladores etc es bastante limitado. Por su uso pervasivo, su historia, y por la facilidad de implementar un compilador de C (ya que es un lenguaje relativamente pequeño, que no sencillo, y relativamente cercano al ensamblador/metal), normalmente siempre puedes contar con un compilador de C.

j

#40 Error de lógica formal. "muchos lenguajes lo tienen" no invalida "que con otros lenguajes no ocurre." Lo único que invalidaría "que con otros lenguajes no ocurre" sería que ocurriera en todos. Como, de hecho, no es así, la frase de #21 es cierta.

Findeton

#65 No, porque he dicho que con otros lenguajes no ocurre. No he dicho que con todos los demás no ocurra.

j

#66 Y por eso he dicho que tu frase de #21 es cierta...

g

#16 #21 Los dos motivos que más se dan para promover el uso de C/C++ en sistemas embebidos real-time o safety-critical son:

1. Que C/C++ son lenguajes muy conocidos y, por tanto, hay muchos programadores que saben programas en esos lenguajes, mientras que hay muchos menos programadores que sepan otros lenguajes más idóneos, como Ada.

2. Que la mayor parte de los vendors de microcontroladores proporcionan compiladores para C/C++, pero no para otros lenguajes más exóticos, como podría ser Ada.

Dicho esto, me sigue pareciendo una locura usar C/C++ por la gran cantidad de errores que se pueden cometer, incluso un programador experimentados y versado en las intricacies de C/C++.

#12 Para paliar los peligros de C/C++ es por lo que surgen estándares de codificación como MISRA y estos estándares de la NASA/JPL. Si estos estándares prohiben usar features de C/C++, es porque esas features son PELIGROSAS (con todas las letras y en mayúsculas).

ruinanamas

Rule 11 (simple control flow)
The goto statement shall not be used.

D

#39 Cocopino al menos era majete. Este es como mucho ese otro que has dicho.

D

#25 técnicamente es dirigida por la NASA pero la organización padre es Calltech.
Del propio documento: Acknowledgement
The research described in this document was carried out at the Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration.

© 2009 California Institute of Technology. Government sponsorship is acknowledged.

Así que me da que es solo el estándar del JPL, no de toda la NASA aunque supongo que serán muy parecidos.

RubiaDereBote

#45 Lo dice la entradilla.

D

#48 respondí al comentario, no a la noticia.

Find
D

Rule 29
Non-constant pointers to functions should not be used.


Vaya C de chichinabo entonces.

JAIL

#12 ¿Por?

D

#13 decides no usar algo que es potente y que lo diferencia de otros muchos lenguajes. Por poner un caso, te complica el código de una simple calculadora.
#15 sip. Y la pregunta siguiente es por qué no pasan de C y usan alguno de los lenguajes que tienen capadas esas posibilidades de serie. Puede haber decenas de respuestas.

c
ufoisthebest

#43 #27 lo que provoco ese fallo tambien es curioso de saber https://es.wikipedia.org/wiki/Inversi%C3%B3n_de_prioridades?wprov=sfla1

D

#27 #15 Solo añadir que si algo hay depurado, es el compilador gcc, es a prueba de bombas, y quizá sea el compilador soportado por más tipos de arquitecturas, sean del año que sean.

Reconozco que odio C, y con estas limitaciones, lo odiaría mucho más, pero hay que reconocer que si uno necesita un binario fiable y predecible, ha de usar C y gcc por fuerza mayor.

NapalMe

#16 Es que los de la NASA son tontos

llorencs

#18 Vas a quedar no "vas ha quedar".

a

#15 La gran potencia y flexibilidad del C podría calificarse de diabólica por el precio de inseguridad que puede tener a la mínima torpeza. Los tipos de warnings que pueden generar algunos compiladores actuales son muy amplios. Cada uno de ellos se refiere a la inseguridad potencial de alguna práctica.

Por ello, creo que los compiladores no solo deberían ser capaces de ofrecer un modo amplio de avisos (warnings) sino que para cada tipo de ellos, el propio compilador debería ofrecer un enlace web con información adicional, porque no todos los warnings resultan triviales y obvios.

En otras palabras, los compiladores de C en particular podrían ir acompañados de funcionalidad didáctica, porque no hay nada más educactivo que aprender de los errores propios.

perro_marron

#12 pero punteros const a funciones si que se puede, esta restriccion tiene todo el sentido del mundo. Te impide ejecutar una direccion de memoria. fnptr=0x1234; fnptr(); por ejemplo. Hacer esto puede ser necesario si programas contra contra hardware puro y duro, pero es muy peligroso si estas bajo un sistema operativo.

box3d

#12 el razonamiento viene de una de las reglas MISRA que no aparecen por ser propietarias.

Se quiere evitar ejecutar una direction de memoria que se desconozca a priori o, en el peor de los casos, memoria corrupta. En un sistema embebido los punteros constantes se almacenan en ROM lo que garantiza que no se corrompa, por eso se permiten.

g

#105 PS #12 No conozco muchas situaciones en las que necesites un puntero no constante a función. La regla 29 no prohibe pasar punteros no constantes como argumentos de función, sino usar punteros no constantes que apunten a una función.

D

JPL != NASA

RubiaDereBote

#10 JPL es el laboratorio de propulsión de cohetes de la NASA: http://jpl.nasa.gov

juantxovilla

#11 no, jpl, a pesar de su nombre en la actualidad no tiene nada que ver con cohetes, es el lavoratorio de la nasa principalmemte encargado de las sondas y robots interplanetarios. Su nombre viene de que en sus inicios fueron sobretodo a la creación de motores y cohetes, pero eso ya no tiene nada que ver con el jpl actual

Findeton

#14 El JPL sigue haciendo cosas relacionadas con cohetes pero, en cualquier caso, sigue siendo parte de la NASA. Que hagan cohetes o no no tiene nada que ver con la noticia: es correcto decir que son la NASA.

juantxovilla

#20 y #25 pues leeme tú tmb, yo también he dicho que es de la nasa lol. Mi 'no' era a que no es de cohetes desde hace muchísimos años, ahora es la parte de la nasa q se dedica a la exploración interplanetaria. Ups, exactamente lo que dije en el otro comentario ;).

Sorry por la v

RubiaDereBote

#29 Entonces no consigo entender dónde ves el problema.

avalancha971

#34 Creo que el problema es que no has visto que un usuario es al que le has dicho que sí son de la NASA, y otro usuario es el que te ha dicho que ya no son el laboratorio de cohetes.

Aclaro que yo son un tercer usuario.

tartarus

#83 Hola, soy todos los usuarios anteriores fusionados en un cuarto usuario.

RubiaDereBote

#14 Laboratorio es con B.
y el JPL forma parte de la NASA vuelve a leer #11.

llorencs

#14 Escrito con móvil? Lavoratorio? Hacen lavativas? lol

D

#70: Puedes... no sé, depurar el código.

xyria

#93 Ya lo hago. Lo ejecuto paso a paso. Puede que se trate de una librería de terceros (ComponentAce) la que esté generando el problema. Aunque tengo el código fuente, no voy a meterme ahí ni loco, prefiero eliminar las referencias a la librería. Ya veré como me las arreglo.

D

Como firme defensor de la programación defensiva, leo con interés. De hecho lo voy a guardar y todo.

D

#39 Estás obsesionado conmigo, chatín. Se te nota el escozor.

Y yo ni recuerdo dónde te he visto. lol

D

#75 en meneame,donde esta tu vida...no he puesto ni el @ para invocarte...

D

#78 No, esta vez me he topado con tu comentario por casualidad. Normalmente me invocas para insultarme personalmente, pero veo que también recurres a la más cobarde difamación.

Lo dicho, mi niño acosador, no te obsesiones. Vivirás mejor.

Y no te equivoques, chiquitín, que tú le dés tantísima importancia a Menéame no significa que los demás también lo hagamos.

D

#79 no decias que no te acordabas de mi? Pues eso....

D

#99 Lee otra vez, payasete, que ni eso sabes.

Sólo te recuerdo de verte aparecer en mis conversaciones para insultarme, no esperes que haga como tú y me grabe en la memoria dónde y por qué.

También me acuerdo de haberme tirado un cuesco esta mañana, y para que te hagas una idea el cuesco me importa más que tú.

A los trolls seguidistas como tú os llamo ”acólitos”, y me parto risa sólo de pensar que dedicáis tiempo a bucear en Menéame buscándome para nada. Qué vida más triste la vuestra.

D

Cosa que no interesa a nadie pero meneamos para hacernos los interesantes.

D

#92 hasta que alguien lo lee, y como buen cuñado, corrige y perfecciona para mejorar la seguridad y eficiencia de la NASA

D

#4 Podías irte tomar por el culo sin acritud.

D

#4 Piérdete, imbécil.

D

#4 A mí me ha hecho gracia. Lo que no te voto positivo por el karma y eso.

D

Un día de estos voy a subir el Neufert a ver si hago portada.

#quierocreer

xyria

#4 En Canarias usamos una expresión divertida para este tipo de situaciones: "Tírate al suelo y di que te dió un dolor".

xyria

#85 Sí.

D

Con el dinero que nos roban, estoy convencido de que Podemos podría crear una NASA española.

RubiaDereBote

#3 Gracias@Lobazo.

LuisPas

#5 se cree el nuevo

D

#9 ese tenia gracia...este es un cocopino o malversan como mucho...

xyria

#3 Por no hacer caso de un warning, dado que compila y se ejecuta perfectamente, llevo un año con una "memory leak" que me genera errores muy de tiempo en tiempo. El código parece perfecto, sigo las sugerencias del compilador. Al final, va a tener razón el autor: Reescribe el código. Lo malo es que es una jodida clase con muchas propiedades y eventos y me da pereza reescribirla.

b

#70 te da pereza... Correcto, y encima te considerarás a ti mismo como un buen profesional...

D

#2 Por favor, insisto en que algún@admin haga algo para que este tipo deje de acosarme.

Cancerbero

#2 Es cutre hasta para ser un troll.

D

#2 En todo caso está generando animadversión hacia Podemos, sicología inversa... y gracias a que le das de comer pues ya tienes tu karma respectivo, como la DEA con el narcotráfico.

r

#1 Rivera, ¿eres tú?

D

#1 Venezuela tiene una base chavista en Marte , me lo ha dicho capriles

1 2