导航:首页 > 源码编译 > 塞班C语言编译器

塞班C语言编译器

发布时间:2023-04-13 15:01:21

㈠ 什么手机软件能看c语言文件

可以下载C语言学习的APP进行查看。

解决这个问题的方法如下:

1、首先点击打开C语言学习软件。

㈡ 求Symbian 3rd下的C/C++编译器或者解释器(解决给1000分!)

呵呵,我N73装了个C++,觉得不怎么爽 昨天刚删掉

帮你辛苦的找了一些东西,呵呵,关于S60 C++的Standard C++ library(一定要给分呀)

全球移动创新领域的领先平台,基于Symbian操作系统的S60今天宣布其Web Run-Time提供可以创建个性化的和能感知情境的widgets。S60是首个支持widgets开发的移动软件平台。它使网络开发者能够开发更具吸引力的、更贴近消费者需求的服务。另外,通过增加对一些广受欢迎不受平台限制的C++ libraries的支持,S60为本地的应用开发的开源创新提供了更多选择。

“我们扩展的Web Run-Time和widget功能拥有改变移动软件发展的规模效应潜力。任何拥有Web开发经验的人,现在都能够在几天甚至几小时内创建非常优秀的移动应用,极大程度地减少开发费用,并进一步开发更多的应用,”诺基亚移动软件销售和市场副总裁Matti Vänskä说。“另外,通过增加个人数据(如通过GPS得到用户所在位置信息),能够为用户提供更强大、更贴近个人需求的互联网服务。从此类服务中所得到的用户体验将超越桌面环境所能提供的互联网体验。”

移动性从根本上改变了人们使用互联网的方式。它是个人的,始终与你在一起,并且是永远连接的。进一步增强widgets能力也是基于此-满足Web标准的应用–因为他们能够获取S60丰富的应用与服务,如日历、通讯录、GPS、短消息、音频、视频。Widgets也能够将从互联网上获得的信息,重新选择,整合至用户的移动终端设备。

S60通过结合Web与S60平台的力量,推动激动人心的新服务。例如,一个天气的widget现在能够通过内置GPS功能获取用户当前位置,并在片刻内显示出那个位置最新的天气预报。飞机航班跟踪widget从航空公司取得用户的路线表,将它存入移动终端中的日历功能中,并设定相关时间提醒功能。在飞机起飞前的几个小时,这个widget会自动地为用户查询航班状况,在移动终端的日历功能中显示航班详锋昌细资料。

“作为最早的网页实时发展(S60 Web Run-Time)平台的使用者之一,我们发现它利用诺基亚最新的Web技术,便捷地移植我们广受欢迎的桌面WeatherBug Widget,将我们实时的当地天气信息延展到移动终端上。”WeatherBug产品部副总裁Chris Brozenick表示。“我们同样已能够平衡S60平台服务,以提供连同合作伙伴信息一起的情境感知的天气数据,如本地电影和餐馆信息。这真正地帮助我们最大化地利用移动性,并全面提高我们的widget可用性和用户体验。”

为支持S60软件战略与多平台发展战略,S60同样也在扩展它通过Open C++对开源创新的支持。它将Standard Template Library和其它广受欢迎的跨越平台的C++ libraries引入到S60平台,如去年宣布的延展Open C功能。同时,Open C和Open C++为开发伙伴创造机会,将开发伙伴现有的在其它平台上的技能与编码利用到他们S60的开发项目中,包括目标于linux和其它平台的开源成分。

基于Symbian操作系统的S60是世界领先的智能手机高基改软件,并不断发展,并且授权行业主要移动终端厂商使用。今天的发布将进一步加强S60的市场领导地位(2008年1月,Canalys公司报告显示,S60占全球融合终端市场的份额已超过53%)。迄今为止,累计有超过1.5亿部由诺基亚和获得S60授权许可的厂商生产的S60终端面市,已推出的75款S60终端为用户提供最全面涵盖不同价格范围的产品戚判系列。

Categories: Lang-CN | python

中文 Python for S60: 为S60终端快速创建应用
From Forum Nokia Wiki
Python for S60: 为S60终端快速创建应用

1. 简介 1.1 什么是Python 1.2 什么是Python for S60 2. Python for S60概述 2.1 使用Python for S60的优点 2.2 Python for S60的特性 2.3 安装包 3. Python for S60的开发 3.1 开发环境 3.2 向S60 SDK安装Python for S60 3.3 向S60终端安装Python for S60 3.4 一步一步编写‘Helloworld’脚本 4. 参考文献

1. 简介本文介绍如何在S60 SDK和S60手机上安装Python,以及如何创建、安装及使用Python脚本和程序,它们将利用S60手机的本地功能和资源。本文读者应具备编程方面的基本知识,如已掌握Python编程语言则更佳。 1.1 什么是Python Python是一种简单、一致、高效的编程语言。它是开源的,可用于应用开发、原型研制、科学计算、Web编程及教学等目的。 Python的设计目的是:让程序员具有更高的生产率,让代码具有更强的可读性和可扩展性,其特性有:

Python是一种解释性、交互性、面向对象的脚本编程语言
Python的功能强大,语法清晰,容易掌握
内置dictionaries, lists, strings等高效数据类型
通过引用计数(reference counting)和垃圾回收(garbage collection) 实现的自动内存管理
支持异常处理
有关Python编程语言方面的更多信息请参阅:http://www.python.org/

1.2 什么是Python for S60 Python for S60 Platform (Python for S60) 对应用开发作了简化,提供面向Symbian C++和S60 API的脚本解决方案。现有版本基于Python 2.2.2。 Python for S60方案基于两种用例: 1. 独立安装 – 本质上这使各种Python应用与本地Symbian应用毫无区别,用户并不能看出这是一个Python应用还是C++应用。应用在终端主菜单中可见。本文不讨论独立Python应用的创建。 2. 在终端菜单中可见的脚本shell,使用户能运行单独的Python脚本。本文所讨论的Python执行环境也仅仅是一个Python脚本,它让我们能运行存在于Python文件夹中的其它Python脚本。这个执行环境也能使用户们能发起一个交互性Python控制台会话,这也被实现成一个Python脚本。此外,Python执行环境能创建一个文本控制台,它被连接到解释器的标准文本输出流。Python已全面实现了对Python安装器和交互式控制台的支持。提示:诺基亚论坛网站上的Python for S60开发伙伴讨论区是有关Python for S60相关信息的有用资源:http://discussion.forum.nokia.com/forum/forumdisplay.php?f=102

2.Python for S60概述 Python for S60将Python编程语言引入到S60手机,它支持许多Python Standard Library模型,同时也支持用C++创建自己的python扩展。 2.1 使用Python for S60的优点 Python for S60非常适合于快速开发:

开发时间短(从创意到实现的捷径)
快速掌握
只需要一些脚本语言知识就能在短时间内创建实际应用
简单一致的语言,清晰的代码结构
能方便地重用各种库、类,和函数
非常适合于入门阶段为基于S60平台的终端创建应用
开发周期短(节省开发时间和成本)
2.2 Python for S60的特性 Python for S60包括一些平台特定模块:

GUI: 菜单(Menu),表单(Forms),列表框(Listboxes),输入字段(Input fields),提示
(Notes)…

图形:颜色,字体与样式属性,full canvas绘图
键盘使用
使用照相机,声音(播放录像)
Sockets: TCP/IP, 蓝牙 (RFCOMM, OBEX)
消息(SMS发送和接收)
网络(HTTP, HTTPS, FTP…)
访问文件系统(文件读/写)
内容句柄(Content handler)
使用电话功能
使用日历、名片夹
系统信息
注:由于平台安全方面的问题,对在S60 3rd Edition上开发会有一些限制 2.3 安装包

安装到S60终端上的Python for S60包括下面一些内容:

Python执行环境,在终端主菜单上可见(脚本shell)
Python解释器DLL
标准及专有的Python库模块
S60 UI应用框架适配组件
Python安装器程序,用于在终端上安装Python文件,包括:
识别插件

编写的Symbian应用

3.Python for S60的开发 3.1 开发环境

本节介绍:除了Python for S60安装包之外您还需要什么,以便执行不同的任务。Python for S60使用下列开发环境和软件:

Symbian S60 SDK,请去http://www.forum.nokia.com/下载
Python for S60,请去http://sourceforge.net/projects/pys60/下载
文本编辑器,如:IDLE (Integrated Development Environment,集成开发环境), 已包括在所有Python版本中,请去http://www.python.org/下载
移动终端和PC间的连接(红外、蓝牙无线技术、USB,GSM或UMTS蜂窝连接)
3.2 向S60 SDK安装Python for S60 您可以向所有获支持的SDK版本分别安装Python模拟器和范例脚本。请选择下面的安装器:

Python or60_1_2_for_2ndEd_FP1_SDK.zip – 针对SDK version 2.1的安装器
Python orS60_1_2_for_2ndEd_FP2_SDK.zip– 针对SDK 2nd Edition, Feature Pack 2的安装器
PythonForS60_1_2_for_2ndEd_FP3_SDK.zip – 针对SDK 2nd Edition, Feature Pack 3的安装器
PythonForS60_1_3_17_SDK_3rdEd_selfsigned.zip – 针对SDK 3rd Edition的安装器
启动安装器程序并按照指示操作,安装器会询问客户文档和工具所安装的文件夹位置,它和所有SDK版本一样都在同一个目录。

注:在SDK 3rd Edition上安装Python模拟器, 直接将PythonForS60_1_3_17_SDK_3rdEd_selfsigned.zip 包解压, 将PythonForS60_SDK_3rdEd\sdk_files\epoc32 目录复制到您的SDK安装文件的根目录安装器将一些模拟器文件和范例脚本复制到下列目录 <EPOCROOT>\Epoc32\Release\wins\udeb\z\system\apps\python 这里<EPOCROOT>是您的SDK安装文件的根目录。注:run_script命令要求脚本位于目录<EPOCROOT>\Epoc32\Release\wins\udeb\z\system\apps\python或其子目录。您可以复制范例脚本的副本,然后对副本进行编辑。

注:如果修改脚本,您无需重起Python执行环境。使用模拟器就如使用手机上的Python for S60。

3.3 向S60终端安装Python for S60 在S60终端上安装Python for S60 文件有两种方法:

诺基亚PC套件软件,更多信息请参阅http://www.forum.nokia.com/网站
红外或蓝牙
如果您使用诺基亚PC套件并在套件上看到相应的SIS文件,请点击PythonForS60_1_3_17_2ndEd.SIS及PythonScriptShell_1_3_17_2ndEd.SIS文件。这时会自动安装执行环境,但是您需要在手机上确认接受。您可以向所有获支持的终端版本分别安装Python for S60和范例脚本

注:您必须根据您的终端版本安装相应版本的Python for S60。您也可以使用红外端口或蓝牙无线技术从PC直接安装Python for S60。 3.4 一步一步编写‘Helloworld’脚本下面的范例使用名为appuifw的Python for S60特别扩展模块,演示如何编写您自己的Python脚本。有关appuifw模块方面的信息请参阅Python for Series 60 Platform API参考资料[2]。 1.打开文本编辑器。 写入下列命令行(第一行是注释):

Hello from appuifw
import appuifw appuifw.note(u"Hello World!", "info") 2. 将文件保存为hello.py。(在模拟器上,将其保存到脚本目录<EPOCROOT>\Epoc32\Release\wins\udeb\z\system\apps\python,并跳过后面的步骤。) 3. 进入文件保存位置右键点击该文件。 4. 将该文件发送到手机。 5. 将该文件保存为Python脚本。

注:run_script命令要求该脚本位于目录<drivename>:\System\Apps\Python − 这里<drivename>是安装Python for S60包的位置 − 或位于其子目录。 6. 现在请在主菜单中启动Python测试您的脚本。在手机主菜单中选择Python图标(见图1)。Python启动,并显示一段版权文字。 7. 如欲从菜单中启动一个Python脚本,请选择Options > Run script。这时出现一个对话框,其中显示所有已安装在Python环境中的脚本,选择“Helloworld.py" (见图2-3)

Figure 1图 Figure 2图 Figure 3图

4. 参考文献

1. Python网站,http://www.python.org/

2. 诺基亚论坛,http://www.forum.nokia.com,《Python for Series 60 Platform API参考资料》

3. 诺基亚论坛,http://www.forum.nokia.com,《用Python for Series 60 Platform编程》

4. Python for S60 Wiki http://wiki.source.nokia.com/projects/Python_for_S60

5. Python for S60开发伙伴讨论区 http://discussion.forum.nokia.com/forum/forumdisplay.php?f=102

6. PyS60教程:http://www.mobilenin.com/

7. 更多信息,http://www.forum.nokia.com/

平台提供:http://www.kaola.cn

㈢ 手机c语言编程app

手机c语言编程app有《C语言学习宝典》、《C语言编译器》、《C语言编译器IDE》、《菜鸟学C语言》、《手机编程》。

1、《C语言学习宝典》

就算没有电脑也能够完成手机编程,专业客服在线帮你解答任何问题,超多趣味工具制作出简单的APP,来自各路的大神分享自己的原创教程,通俗易懂的教学案例让你一看就懂。

c语言编程介绍

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

㈣ 常见的C语言编译器是什么

目前最流行的C语言编译器有以下几种:

1、GNU Compiler Collection 或称GCC

GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。

GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。

2、Microsoft C 或称 MS C

Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或称 Turbo C

Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。

(4)塞班C语言编译器扩展阅读:

C编译的整个过程很复杂,大致可以分为以下四个阶段:

1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

3、汇编阶段将汇编语言翻译成机器指令。

4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

㈤ 手机上有c语言编程软件吗

如果在手机上学C语言编程,可以试试名为易历知食的软件,其内部有项功能叫微C程序设计,可以在手机上进行C语言编程练习,其自带的示例如下图:

最简单的入门程序:

㈥ 手机c语言编程软件哪个好

1:C4droid中文版

C4droid中文版可以说是款Android设备上的最强的 C/C++ IDE,支持多种图形库: SDL、SDL2 (需安装sdl plugin for c4droid)、QT(需安装CuteLoadear)等,还支持导出APK!

㈦ C语言编译器有手机版的吗塞班三的

有的,可正野岩以到塞班论坛搜脊散索”编程易“,不过需要PY平台支持,你也可以在塞班论坛举御搜索”真天舞的大蟒蛇平台“。

㈧ 在Ubuntu上写C语言通常用什么编译器

ubuntu是linux系统的桌面版,自带了c语言编译器(gcc),编译c语言步骤如下:
1、写好一个c文件
2、打开终端(Ctrl+Alt+T)
3、进入c文件所在目录
4、输入:gcc xx.c -o xx
5、编译成功生成执行文件xx,运行输入: ./xx 即可看到结果

㈨ c语言用什么编译器

c语言可以用的编译器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc编译器等。

1、MicrosoftVisualC++是微软公司的免费C语言编程软件,是用户在安装VisualC++库时必须安装的运行时组件,可以完美解决在系统运行一些软件时会遇到缺少DLL的情况,使用户可正常运行VisualC++开发的应用程序。

2、myeclipse是款优秀的java开发工具,MyEclipse功能强大,运用广泛,尤其是对各种开源产品的支持十分不错,能够大大提高开发人员的工作效率。

3、TurboC是一款功能快捷高效的C语言编辑器,主要是用来编写C/C++程序,无需独立地编辑、编译和连接程序就能建立并运行C语言程序,软件体积非常的小巧,并且对于电脑方面没有特别的系统要求,功能上也十分的强大。

4、gcc编译器是款专业的c语言编辑工具,可用于c语言、c++、java、object-C等语言程序中去,支持交叉编译器,交叉语言设计,提供交叉编译环境,通过在命令列下键入一些命令参数,让编程更有效率。

总结
c语言可以用的编译器有很多,包括MicrosoftVisualC++、MyEclipse、TurboC和gcc编译器等。

㈩ 学C语言现在最好用的编程软件

GNU编译器套装
开发 The GNU Project
最新版本 4.4.2 / 2009-10-15(2个月前)
操作系统 跨平台
类型 编译器
许可协议 GPL
网站 gcc.gnu.org

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果计算机Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java,以及Ada与其他语言。
目录
[隐藏]

* 1 概观
* 2 目前支持的语言
o 2.1 内嵌OpenMP支持
* 3 支持的处理器架构
* 4 结构
o 4.1 前端接口
o 4.2 中介接口
o 4.3 后端接口
* 5 替GCC程序除错
* 6 参考书目及注释
* 7 参阅
* 8 更多阅读
* 9 外部链接

[编辑] 概观

GCC是由理乍得·马修·斯托曼在1985年开始的。他首先扩增一个旧有的编译器,使它能编译C,这个编译器一开始是以Pastel语言所写的。Pastel是一个不可移植的Pascal语言特殊版,这个编译器也只能编译Pastel语言。为了让自由软件有一个编译器,后来此编译器由斯托曼和Len Tower在1987年[1]以C语言重写[2]并成为GNU项目的编译器。GCC的建立者由自由软件基金会直接管理[3]。

在1997年,一群不满GCC缓慢且封闭的创作环境者,组织了一个名为EGCS《Experimental/Enhanced GNU Compiler System》的项目,此项目汇整了数项实验性的分支进入某个GCC项目的分支中。EGCS比起GCC的建构环境更有活力,且EGCS最终也在1999年四月成为GCC的官方版本。

GCC目前由世界各地不同的数个程序设计师小组维护。它是移植到中央处理器架构以及操作系统最多的编译器。

由于GCC已成为GNU系统的官方编译器(包括GNU/Linux家族),它也成为编译与建立其他操作系统的主要编译器,包括BSD家族、Mac OS X、NeXTSTEP与BeOS。

GCC通常是跨平台软件的编译器首选。有别于一般局限于特定系统与运行环境的编译器,GCC在所有平台上都使用同一个前端处理程序,产生一样的中介码,因此此中介码在各个其他平台上使用GCC编译,有很大的机会可得到正确无误的输出程序。
[编辑] 目前支持的语言

以2006年5月24日释出的4.1.1版为准,本编译器版本可处理下列语言:

* Ada 《GNAT》
* C 《GCC》
* C++(G++)
* Fortran 《Fortran 77: G77,Fortran 90: GFORTRAN》

* Java 《编译器:GCJ;解释器:GIJ》
* Objective-C 《GOBJC》
* Objective-C++

先前版本纳入的CHILL前端由于缺乏维护而被废弃。

Fortran前端在4.0版之前是G77,此前端仅支持Fortran 77。在本版本中,G77被废弃而采用更新的GFortran,因为此前端支持Fortran 95。

下列前端依然存在:

* Mola-2
* Mola-3
* Pascal
* PL/I

* D语言
* Mercury
* VHDL

[编辑] 内嵌OpenMP支持

OpenMP是一种跨语言的对称多处理器(SMP)多线程并行程序的编程工具,也非常适合当今越来越流行的单CPU多核硬件环境,因此从gcc4.2开始,OpenMP成为其内嵌支持的并行编程规范,可以直接编译内嵌 OpenMP语句的C/C++/Fortran95的源代码。gcc4.2之前如果想在C/C++/Fortran中嵌入OpenMP语句的话,需要额外安装库和预处理器才能识别和正确处理这些语句。

* gcc 4.2.0开始支持OpenMP v2.5
* gcc 4.4.0开始支持OpenMP v2.5及v3.0

参见GNU的GOMP计划
[编辑] 支持的处理器架构

GCC目前支持下列处理器架构(以4.1版为准):

* Alpha
* ARM
* Atmel AVR
* Blackfin
* H8/300
* IA-32(x86)与x86-64
* IA-64例如:Itanium

* MorphoSys家族
* Motorola 68000
* Motorola 88000
* MIPS
* PA-RISC
* PDP-11
* PowerPC

* System/370,System/390
* SuperH
* HC12
* SPARC
* VAX
* Renesas R8C/M16C/M32C家族

较不知名的处理器架构也在官方释出版本中支持:

* A29K
* ARC
* C4x
* CRIS
* D30V
* DSP16xx
* FR-30
* FR-V

* Intel i960
* IP2000
* M32R
* 68HC11
* MCORE
* MMIX

* MN10200
* MN10300
* NS32K
* ROMP
* Stormy16
* V850
* Xtensa

由FSF个别维护的GCC处理器架构:

* D10V
* MicroBlaze

* PDP-10
* MSP430

* Z8000

当GCC需要移植到一个新平台上,通常使用此平台固有的语言来撰写其初始阶段。
[编辑] 结构

GCC的外部接口长得像一个标准的Unix编译器。用户在命令行下键入gcc之程序名,以及一些命令参数,以便决定每个输入文件使用的个别语言编译器,并为输出代码使用适合此硬件平台的汇编语言编译器,并且选择性地运行连接器以制造可运行的程序。

每个语言编译器都是独立程序,此程序可处理输入的源代码,并输出汇编语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的源代码,并产生一抽象语法树,以及一翻译此语法树成为GCC的寄存器转换语言《RTL》的后端。编译器优化与静态代码解析技术(例如FORTIFY_SOURCE[1],一个试图发现缓存溢出《buffer overflow》的编译器)在此阶段应用于代码上。最后,适用于此硬件架构的汇编语言代码以Jack Davidson与Chris Fraser发明的算法产出。

几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。
[编辑] 前端接口

前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递回语法解析器。

直到最近,程序的语法树结构尚无法与欲产出的处理器架构脱钩。而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。

在2005年,两种与语言脱钩的新型态语法树纳入GCC中。它们称为GENERIC与GIMPLE。语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。之后再使用"gimplifier"技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(Static Single Assignment form,SSA)基础的GIMPLE形式。此形式是一个与语言和处理器架构脱钩的全局优化通用语言,适用于大多数的现代编程语言。
[编辑] 中介接口

一般编译器作者会将语法树的优化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。因此GCC作者们将此步骤归入通称为中介阶段的部分里。此类的优化包括消解死码、消解重复计算与全局数值重编码等。许多优化技巧也正在实现中。
[编辑] 后端接口

GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、调用方式与大小尾序等。后端接口的前半部利用这些消息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。

GCC的优化技巧依其释出版本而有很大不同,但都包含了标准的优化算法,例如循环优化、线程跳跃、共通程序子句消减、指令调度等等。而RTL的优化由于可用的情形较少,且缺乏较高级的信息,因此比较起近来增加的GIMPLE语法树形式[2],便显得比较不重要。

后端经由一重读取步骤后,利用描述目标处理器的指令集时所取得的信息,将抽象寄存器替换成处理器的真实寄存器。此阶段非常复杂,因为它必须关照所有GCC可移植平台的处理器指令集的规格与技术细节。

后端的最后步骤相当公式化,仅仅将前一阶段得到的汇编语言码借由简单的副函数转换其寄存器与存储器位置成相对应的机器码。
[编辑] 替GCC程序除错

为GCC除错的首选工具当然是GNU除错器。其他特殊用途的除错工具是Valgrind,用以发现存储器泄漏 (Memory leak)。而GNU测量器(gprof)可以得知程序中某些函数花费多少时间,以及其调用频率;此功能需要用户在编译时选定测量《profiling》选项。
[编辑] 参考书目及注释

* Richard M. Stallman:Using and Porting the GNU Compiler Collection, Free Software Foundation,ISBN 0-595-10035-X
* Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
* Brian J. Gough:An Introction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3

1. ^ Tower, Leonard (1987) "GNU C编译器beta测试版释出" comp.lang.misc USENET新闻组;参阅http://gcc.gnu.org/releases.html#timeline
2. ^ Stallman, Richard M.(1986年2月1日).GNU状态.GNU的公告版,1(1).自由软件基金会.
3. ^ Stallman, Richard M. (2001) "GCC贡献者名单"于使用及移植GCC 2.95版(Cambridge, Mass.: Free Software Foundation)

[编辑] 参阅
[[File:|36x32px|自由软件主题]] 自由软件主题首页

GCC目前包含了Boehm GC,一个为C/C++ 所设计的垃圾回收器。

* distcc - 为分布式编译所设计的软件,以GCC为协同软件。
* LLVM - 低层虚拟机编译器架构。
* MinGW - 将GNU开发工具移植到Win32平台下的计划
* Cygwin - 在Windows上运行GNU程序的模拟软件。
* GCC Summit
* OpenWatcom - 另一个开放原码的C++/Fortran编译器。
* Code Sourcery - 一个GCC顾问公司。
* ggcc - 全球化GCC项目。

[编辑] 更多阅读

* Arthur Griffith, GCC: The Complete Reference. McGrawHill/Osborne. ISBN 0-07-222405-3.
* Kerner, Sean Michael.Open Source GCC 4.0: Older, Faster,internetnews.com,2005年4月22日.
* Kerner, Sean Michael.New GCC Heavy on Optimization,internetnews.com,2006年3月2日.

[编辑] 外部链接

* GCC官方网站
* GCC Forum - 由Nabble维持,整理所有gcc通信讨论串,并集成入一个可搜索接口中。

阅读全文

与塞班C语言编译器相关的资料

热点内容
android天气apijson 浏览:982
为什么创建id会出现服务器错误 浏览:835
代码中有不必编译的单词吗 浏览:563
钩子与数据库编程 浏览:563
安卓光遇录歌怎么设置 浏览:485
虚拟机怎么和云服务器搭建集群 浏览:896
python倒计时代码turtle 浏览:491
cad命令mv 浏览:928
nexus7一代androidl 浏览:306
linux使用静态库编译过程 浏览:103
android平滑滚动效果 浏览:841
什么是编译器指令 浏览:219
微控制器逻辑命令使用什么总线 浏览:887
程序员在学校里是学什么的 浏览:605
oraclejava数据类型 浏览:890
程序员考注册会计师 浏览:957
怎么使用access的命令按钮 浏览:899
有点钱app在哪里下载 浏览:832
博途v15解压后无法安装 浏览:205
什么是根服务器主机 浏览:438