程序设计之六:Hello World

 

接触编程已三年有余,所学的程序设计语言,也有五六种之多。一般来说,对于每一门新程序设计语言,我们写的第一个程序,无非是输出“hello world”。在这里,我归纳了用我所学过的几种程序设计语言编写的“hello world”程序:C、C++(Win32)、C++(托管)、C#.NET、VB.NET、JAVA以及适用于8086CPU的汇编语言。根据这几个程序,来谈谈我对程序设计的理解。

为了增强可比性,下列程序均为控制台应用程序。其中C、C++(Win32)、C++(托管)、C#.NET、VB.NET程序在Visual Studio 2010环境下编译通过,JAVA程序在JRE1.6环境下通过编译,8086汇编在masm环境下通过编译。

C:

#include<stdio.h>

#include<stdlib.h>

int main()

{

         printf("hello world\n");

         system("pause");

}

 

C++:

#include<iostream>

using namespace std;

int main()

{

         cout<<"hello world"<<endl;

         system("pause");

}

运行效果如下图

C++托管

using namespace System;

int main(array<System::String ^> ^args)

{

    Console::WriteLine(L"Hello World");

    return 0;

         system("pause");

}

 

C#:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("hello world");

            Console.Read();

        }

    }

}

 

VB.NET:

Module Module1

    Sub Main()

        Console.WriteLine("hello world")

        Console.Read()

    End Sub

End Module

.NET环境下,运行效果如下:

JAVA:

class hello

{

       public static void main(String args[])

       {

              System.out.println("hello world");

       }

}

JAVA环境下,其运行效果与.NET相同。

8086汇编语言:

assume cs:code,ds:data

data segment

        db 'hello world!',0

data ends

code segment

start:

         mov ax,data

         mov ds,ax

         mov si,0

         mov dh,8

         mov dl,3

         mov cl,2

         call show_str

     mov ax,4c00h

         int 21h

show_str:                         ;显示字符串子程序入口

         push ax                                ;与pop指令结合进行相关寄存器的保护工作

         push dx

         push cx

         push es

         push di

         push si

         mov ax,0b800h                           ;子程序体

         mov es,ax

         sub ax,ax

         mov al,160

         mul dh

         sub dh,dh

         add dl,dl

         add ax,dx

         mov di,ax

         mov al,cl

         sub cx,cx

  next:

         mov cl,[si]        

         jcxz sret

         mov es:[di],cl

         mov es:[di+1],al

         inc si

         add di,2

         jmp short next

   sret:    

         pop si

         pop di

         pop es

         pop cx

         pop dx

         pop ax     

ret                                          ;子程序返回

code ends

end start

运行效果如下:

       由上面,我们可以看到,8086汇编语言,实现起来最麻烦。它是通过对寄存器中数据的赋值以及地址的传递,来实现字符串的输出。当然,汇编语言属于低级语言,它的应用主要限于底层开发,如果对程序运行效率有较高的要求,我们可以适当采用汇编指令。

       其它的高级语言的语句都较为精炼。对于C++和托管C++的区别,主要有以下:标准的C++,适用的函数都是Win32API,而进行托管扩展后的C++,适用的是.NET类库。这两者各有好坏,托管C++编写的程序只能运行于相应的.NET Framework环境下,这点和JAVA比较类似。而标准的C/C++,又称为MFC,直接调用系统Win32API函数,所编写的程序,可以运行于所有的Windows系统中,其缺点是学习起来,难度较高。

       对于VB.NET和C#.NET的区别,仅限于语法方面,和托管C++一样,用这两种语言开发的程序,只能运行在.NET Framework环境下,它的优点是快速开发,利用微软已经定义好的类库,提高开发效率。可以说,没有了.NET Framework,VB.NET和C#.NET什么事都干不了。

       对于JAVA语言,我觉得和C#非常相似,当然,JAVA的特点是跨平台。在所有安装了JRE环境的系统中,我们都能运行JAVA程序。而.NET程序,其运行平台只能局限于Windows系统。正式这一特性,JAVA被广泛用于网络应用程序的开发。

       对于我来说,我对.NET有着比较浓厚的兴趣,特别是当我第一次接触微软的Visual Studio 2010的时候,它强大的IDE开发环境吸引了我,当我成功开发出两代图书管理系统后,我觉得.NET的最大特色就是快速开发,用它来编程,再也没有C++那么枯燥,那么深奥。

       当然,我只是个初学者,只是以刚入门的角度来认识以上几种流行的程序设计语言,好多方面还理解不到位,相信随着学习的深入,我能学好.NET。

2011年5月20日星期五

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值