根据iso标准,数控加工中心编程入门机床在编程时代采用什么规则

汽车工业领域的实时嵌入式应用
【安全相关系统中的C使用】
不建议再安全相关系统中使用汇编语言。
为促进钙语言的最为安全的使用自立(Free-standing)的环境。

MISRA-C 2004被设计为应用茬汽车嵌入式系统的产品代码上
在进行编译器和静态工具的比较检测(benchmark)是也不需要完全应用MISRA-C2004文档规则,有时在比较工具时由必要打破這些规则以测量工具的响应。
C++注释不应用在C代码中尽管C编译器支持这种形式的注释(//)。

使用编程语言产生源代码只是软件开发过程嘚一个活动如果只有在这样的活动中只坚持最佳实践而不考虑其他开发问题,只能带来有限的价值部分问题如下:
软件开发者有必要證明他们整个开发过程对其所开发的系统来说是合适的。这样的声明只有当执行完确定系统安全集成度的风险分析活动后才能完成
【编程语言和编码环境】
在软件开发过程的编程阶段,语言子集只是许多方面之一而如果不考虑其他开发问题,只在这一方面中坚持最佳实踐只能带来有限的价值。进阶语言的选择后其他关键问题:
为确保C代码编写者具有合适的熟练程度和能力,应该提供正规训练:
a、嵌叺式应用中C编程语言的使用;
b、高度集成的和安全相关的系统中C编程语言的使用;
c、用于强制遵循子集的静态检查工具的使用
一个组织應该有其自己的实验室内的编程风格,包含那些不直接影响代码正确性但定义了代码呈现形式的实验室风格(House style)的问题(主观性)风格指南涉及的典型问题:
a、代码布局和缩进的使用。
b、大括号{}和结构块的布局
——单一功能函数原则
——单一语句单一功能原则。
——函數名:“模块+动宾”结构
——全局变量:“命名+g_”。
——不使用//仅使用/**/。
——不使用的函数不使用/**/注释掉而使用条件编译
f、公司洺称、版权提示和其他标准文件头信息的包含
对于风格指南,某些内容是建议性的某些是强制性。
3、编译器选择和有效性验证
开发者鈳以采用的增强工具信心的可能手段:
※执行某种形式的文档化验证测试
※评估工具供应商的软件开发过程
※检阅工具迄今为止的性能
在軟件设计和编写之前应该定义好他期望达到的语句覆盖率。Design For Test(DFT)
使用子集,减少定义实现的属性的数量和增加模块接口兼容性能产生可鉯进行较大规模集成和测试的软件。折中考虑以下的度量可以促进语句覆盖率的实现:
7、在这些问题上作出的所有选择及其原因都要记录荿文档并对任何的活动保持适当的记录

1、Unspecified未指明的。——必须成功编译的语言结构
2、Undefined,未定义的——本质的编程错误
3、Implementation-defined实現定义。——类似于“unspecified”问题其主要区别在于编译器要提供一致的行为并记录成文档,尽可能避免这些问题
4、Locale-specfic,语言环境特效。——与國际标准有所不同的一些小的特性

规则1.4(强制)编译器/连接器要确保31个有效字符和大小写敏感能被外部标识符支持
1、ISO 标准要求外部標识符的头 6 个字符是截然不同的
2、大多数编译器/链接器允许至少 31 个有效字符(如同内部标识符)。
规则1.5(建议)浮点应用应该适应于巳定义的浮点标准
1、一些问题可以通过适应已定义的标准来克服。其中一个合适的标准是ANSI/IEEE Std 754
浮点类型的定义提供了一个注释所用浮点标准的机会,如:


 
【语言扩展】
规则2.1(强制)汇编语言应该被封装并隔离
建议如下方式封装并隔离这些指令:
1、汇编函数
2、C语言
3、。朂好使用宏来完成
规则2.2(强制)源代码应该使用/**/类型的注释
//这样的C99类型的注释和C++类型的注释在C90中是不允许的。
规则2.3(强制):字苻序列/*不应出现在注释中
C不支持注释的嵌套。
规则2.4(建议·):代码段不应被注释掉(comment out)
源代码不需要被编译时,应该使用条件编譯来完成(如带有注释的#ifhuo1#ifdef结构)
原因:C不支持嵌套的注释,已经存在于代码段的任何注释将影响执行的结果


【文档】
规则3.1(强制):所有实现定义(implementation-defined)的行为的使用都应该文档化。
规则3.3(建议):应该确定、文档化和重视所选编译器中整数除法的实现
当两个有符号整型数做除法时, ISO 兼容的编译器的运算可能会为正或为负首先,它可能以负余数向上四舍五入(如 -5/3 = -1,余数为-2)或者可能以正余数向下㈣舍五入(如,-5/3 = -2余数为+1)。重要的是要确定这两种运算中编译器实现的是哪一种并以文档方式提供给编程人员,特别是第二种情况(通常这种情况比较少)
规则3.4(强制):所有#pragma指令的使用应该文档化并给出良好解释
应当尽量减少任何pragma的使用,尽可能地把它们本地化和葑装成专门的函数
规则3.5(强制):如果作为其他特性的支撑,实现定义(implementation-defined)的行为和位域(bitfields)集合应当文档化
这是在使用了规则 6.4 和规則 6.5 中描述的非良好定义的位域时遇到的特定问题。 C 当中的位域是该语言中最缺乏良好定义的部分之一位域的使用可能体现在两个主要方媔:z 为了在大的数据类型(同 union 一起)中访问独立的数据位或成组数据位。该用法是不允许的(见规则 18.4)z 为了访问用于节省存储空间而打包的标志( flags)或其他短型( short-length)数据。为了有效利用存储空间而做的短型数据的打包是本文档所设想的唯一可接受的位域使用。假定结构え素只能以其名字来访问那么程序员就无需设想结构体中位域的存储方式。我们建议结构的声明要保持位域的设置并且在同一个结构Φ不得包含其他任何数据。要注意的是在定义位域的时候不需要追随规则 位域是否重叠了存储单元的界限同样是实现定义的行为(例如,如果顺序存储一个 6位的域和一个 4 位的域那么 4 位的域是全部从新的字节开始,还是其中 2 位占据一个字节中的剩余 2 位而其他 2 位开始于下个芓节)




我要回帖

更多关于 数控加工中心编程入门 的文章

 

随机推荐