什么是源代码

什么是源代码,第1张

代码是用特定编程语言编写的人类可读文本,源代码的目标是为可以转换为机器语言的计算机设置准确的规则和规范。因此,源代码是程序和网站的基础。

源代码可以存在于每个软件中,软件按照源代码中的编程进行执行,常用的格式是文本文件,计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。

扩展资料:

概念研究

一、理论上的概念

源代码是相对目标代码和可执行代码而言的。

源代码就是用汇编语言和高级语言写出来的代码。

目标代码是指源代码经过编译程序产生的能被cpu直接识别的二进制代码。

可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的。

二、最直观的概念

在这个网页上右键鼠标,选择"查看源文件"出来一个记事本,里面的内容就是此网页的源代码

关于两者的区别联系:

1、从字面意义上来讲,源文件是指一个文件,指源代码的集合。源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码)

2、"源代码"在大多数时候等于"源文件"

比如在这个网页上右键鼠标,选择查看源文件。出来一个记事本,里面的内容就是此网页的源代码"这句话就体现了他们的关系,此处的源文件是指网页的源文件,而源代码就是源文件的内容,所以又可以称做网页的源代码。

源代码是指原始代码,可以是任何语言代码。

汇编码是指源代码编译后的代码,通常为二进制文件,比如DLL、EXE、NET中间代码、JAVA中间代码等。

高级语言通常指C/C++、BASIC、C#、JAVA、PASCAL等等汇编语言就是ASM,只有这个,比这个更低级的就是机器语言了。

源程序源文件源代码是一回事。

参考资料来源:百度百科-源代码

这里面有一个问题存在,就是你所指的环境是怎样的环境?一般来说,程序设计上的环境无关是指可以在不同的 *** 作系统下执行,比如WINDOWS和UNIX。要是你想这样的话,目前只能用JAVA语言。JAVA语言编译后产生的是中间代码,这些代码在VM(虚拟机)上执行,从而实现了环境无关。如果你的意思是在这个机器上做好的程序还可以拿到同类的其他机器上执行,比如从WINDOWS 98到WINDOWS2000或者XP下,这就简单了。语言开发环境都有编译功能,只要把源程序编译为EXE文件,就可以了。当然,在编译时,还要注意动态链接库的问题。象VC++的程序,就需要相应的DLL库来支持的。把程序拿到别的机器上的时候,需要这个库才能执行。

Source

Code

就是程序员编写的程序

别人也可以看懂的

之后经过编译

连接啥的

就是机器语言了

拿来看也没有用了

举个例子说,你在这个网页上点鼠标右键,里面有一项,查看源代码,你点一下,那麼你就看见用记事本打开的文件有许多文字了,这个就是这个网页的源代码。一般我们最终看到的用到的都是是程序,比如记事本也是个程序,网页也可以算是个我们看到的结果,浏览器也是个程序,那麼这些程序都是别人做出来的,他写的原来的代码经过处理(程序中叫编译,比如刚才看到的那些代码经过浏览器整理就是得到网页了)就是我们最终使用的东西,这些代码也有专门的编写工具(程序),比如网页代码可以用FrontPage来写,你也听过计算机语言,C语言什麼的,那麼这些语言写的代码经过整理编译最终就是我们使用的程序,比如记事本了,QQ了,等等。源代码是一般不发布的,也就是我们不能看到的,这样就可以保证这些人/公司的知识产权。我这个是最通俗的解释,没有用书上的定义给你解释,但意思是不错

#include

#include

#include

#include

#include

#define uchar unsigned char

typedef unsigned char uint8; // 无符号8位整型变量

typedef signed char int8; // 有符号8位整型变量

typedef unsigned short uint16; // 无符号16位整型变量

typedef signed short int16; // 有符号16位整型变量

typedef unsigned int uint32; // 无符号32位整型变量

typedef signed int int32; // 有符号32位整型变量

typedef float fp32; // 单精度浮点数(32位长度)

typedef double fp64; // 双精度浮点数(64位长度)

sbit row1 = P1 ^ 0;

sbit row2 = P1 ^ 1;

sbit row3 = P1 ^ 2;

sbit col1 = P0 ^ 1;

sbit col2 = P0 ^ 2;

sbit col3 = P0 ^ 3;

sbit col4 = P0 ^ 4;

sbit col5 = P0 ^ 5;

sbit col6 = P0 ^ 6;

sbit col7 = P0 ^ 7;

#define uint unsigned int

uchar STH0; //定时器计数初值

uchar STL0;

bit FY=0; //放乐曲时FY=1, 电子琴d奏时FY=0

uchar Song_Index=0,Tone_Index=0; //放音乐的参数

uchar k, key;

sbit SPK=P3^7;

sbit LED1=P1^0;

sbit LED2=P1^1;

sbit LED3=P3^4;

sbit LED4=P3^5;

sbit LED5=P3^6;

void Delay(uint16 count)

{

uint8 i;

while(--count != 0)

{

for(i = 0; i < 125; i++); // ";" 表示空语句,CPU空转。

} // i 从0加到125,在12M晶体下CPU大概耗时1毫秒

}

uint8 KeyDown(void)

{

col1=0; col2=0; col3=0; col4=0; col5=0; col6=0; col7=0; // 列线全部置低

if((row1==0) || (row2==0) || (row3==0)) // 若有任一行线读回状态为低

{

Delay(80); // 延时消抖

if((row1==0) || (row2==0) || (row3==0)) // 再次读行线状态,若有任一行线读回状态为低

return 1; // 返回1,表明有键盘按下

else

return 0; // 返回0,表明无键盘按下

}

else

return 0;

}

uint8 KeyUp(void)

{

col1=0; col2=0; col3=0; col4=0; col5=0; col6=0; col7=0;

if((row1==1) && (row2==1) && (row3==1))

{

Delay(80);

if((row1==1) && (row2==1) && (row3==1))

return 1;

else

return 0;

}

else

return 0;

}

uint8 KeyNum(void)

{

uint8 KeyTemp;

KeyTemp=0;

if(KeyDown()==1)

{

col1=0; col2=1; col3=1; col4=1; col5=1; col6=1; col7=1; // 将列线1置低,其他列线置高

if (row1==0) KeyTemp=1; // 若行线1读回状态为低,则表明按键1被按下

if (row2==0) KeyTemp=8; // 若行线2读回状态为低,则表明按键8被按下

if (row3==0) KeyTemp=15; // 若行线3读回状态为低,则表明按键15被按下

col1=1; col2=0; col3=1; col4=1; col5=1; col6=1; col7=1;

if (row1==0) KeyTemp=2;

if (row2==0) KeyTemp=9;

if (row3==0) KeyTemp=16;

col1=1; col2=1; col3=0; col4=1; col5=1; col6=1; col7=1;

if (row1==0) KeyTemp=3;

if (row2==0) KeyTemp=10;

if (row3==0) KeyTemp=17;

col1=1; col2=1; col3=1; col4=0; col5=1; col6=1; col7=1;

if (row1==0) KeyTemp=4;

if (row2==0) KeyTemp=11;

if (row3==0) KeyTemp=18;

col1=1; col2=1; col3=1; col4=1; col5=0; col6=1; col7=1;

if (row1==0) KeyTemp=5;

if (row2==0) KeyTemp=12;

if (row3==0) KeyTemp=19;

col1=1; col2=1; col3=1; col4=1; col5=1; col6=0; col7=1;

if (row1==0) KeyTemp=6;

if (row2==0) KeyTemp=13;

if (row3==0) KeyTemp=20;

col1=1; col2=1; col3=1; col4=1; col5=1; col6=1; col7=0;

if (row1==0) KeyTemp=7;

if (row2==0) KeyTemp=14;

if (row3==0) KeyTemp=21;

return KeyTemp;

}

else

return 0; //无按键按下

}

uchar code DSY_CODE[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x06};

uchar code GE_CODE[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};

uchar code Song[][100]= //任意选几首音乐的旋律

{

{5,3,5,3,5,3,1,2,4,3,2,5,5,3,5,3,5,3,1,2,4,3,2,1,2,2,4,4,3,1,5,2,4,3,2,5,5,3,5,3,5,3,1,2,4,3,2,1,-1}, //《粉刷匠》

{1,2,3,4,5,3,1,8,6,4,5,5,3,1,2,3,4,5,3,2,1,2,3,2,5,1,2,3,4,5,3,1,8,6,4,5,3,1,2,3,4,5,3,2,1,2,3,1,1,8,6,4,5,5,1,8,6,4,5,3,1,2,3,4,5,3,2,1,2,3,1,1,-1},//《小红帽》

{1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1,5,6,5,4,3,1,1,5,1,1,5,1,-1}, //《两只老虎》

{5,8,6,8,5,3,5,2,3,5,0,3,5,6,8,5,6,5,3,5,1,3,2,0,3,2,1,2,3,6,5,3,5,6,0,5,8,6,5,3,5,2,5,2,3,2,1,-1}, //《一分钱》

{5,3,5,3,5,3,2,3,5,5,5,3,6,5,3,5,3,2,1,2,3,5,3,2,1,2,3,6,5,6,5,2,3,5,6,5,6,5,2,3,1,-1}, //《丢手绢》

{5,3,5,3,5,6,5,3,6,5,1,1,2,3,5,3,2,0,3,5,5,5,6,5,3,5,5,6,5,8,6,5,1,5,3,2,1,2,3,5,5,2,3,1,10,9,8,6,5,5,6,6,5,6,8,10,8,9,0,5,10,9,8,6,5,5,6,6,5,6,10,9,9,10,9,8,6,5,5,8,6,5,3,2,1,0,2,3,5,5,0,5,6,8,-1}, //《七子之歌-澳门》

{5,6,5,6,5,6,5,5,8,7,6,5,3,5,5,3,4,5,5,3,1,4,3,2,1,2,1,-1}, //《找朋友》

{5,10,9,10,3,8,7,6,6,9,8,9,6,8,9,9,9,9,8,10,10,9,9,5,10,9,10,3,8,7,6,5,6,8,8,8,9,10,9,8,7,8,8,-1},//《感恩的心》

{3,3,4,5,5,4,3,2,1,1,2,3,3,2,2,3,3,4,5,5,4,3,2,1,1,2,3,2,1,1,2,2,3,1,2,3,4,3,1,2,3,4,3,2,1,2,1,3,3,3,4,5,5,4,3,4,2,1,1,2,3,2,1,1,-1}, //《欢乐颂》

{5,8,5,4,3,2,1,1,1,2,3,3,1,3,4,5,5,5,8,5,4,3,5,2,4,3,2,6,5,2,3,1,1,0,5,3,6,8,7,6,7,5,3,9,9,9,8,7,6,8,5,5,5,3,6,8,7,6,7,8,9,5,6,7,8,9,5,8,8,-1}, //《我爱北京天安门》

{3,5,8,5,6,0,6,5,3,3,5,5,3,5,6,8,9,8,5,3,2,5,3,3,3,3,5,8,5,6,0,8,9,8,5,3,5,7,6,0,3,2,3,5,10,9,7,8,3,5,8,3,5,8,5,6,0,8,9,8,5,3,5,7,6,0,3,2,3,5,10,9,7,8,3,5,2,3,5,10,9,9,9,7,8,-1},//《北京欢迎你》

{1,2,3,1,5,6,6,8,6,5,6,6,8,5,6,5,6,5,3,5,3,1,2,3,1,-1}, //《上学歌》

{10,9,9,10,8,0,3,8,6,5,3,5,0,5,5,6,8,8,8,6,8,3,5,5,6,5,3,2,2,0,10,9,9,10,8,0,3,8,6,5,3,5,0,5,5,6,8,8,6,5,6,3,0,3,10,10,10,10,9,6,8,-1},//《当兵的人》

{3,3,5,6,8,8,6,5,5,6,5,3,3,5,6,8,8,6,5,5,6,5,5,5,5,3,5,6,6,5,3,2,3,5,3,2,1,1,2,1,-1},//《茉莉花》

{3,1,3,3,1,3,3,5,6,5,0,6,6,5,5,4,4,4,2,3,2,1,2,0,3,1,0,3,1,0,3,3,5,6,6,0,8,5,5,6,3,2,1,2,3,5,8,5,5,6,3,2,1,2,3,1,-1},//《数鸭子》

{1,1,3,4,5,5,5,3,4,4,4,2,1,3,5,0,1,1,3,4,5,5,5,3,4,4,4,2,1,3,1,0,6,6,4,5,5,5,5,3,4,4,4,2,1,3,5,0,6,6,4,5,5,5,5,3,4,4,4,2,1,3,1,0,-1},//《洋娃娃和小熊跳舞》

};

uchar code Len[][100]= //上面几首音乐的旋律每个音符对应的节拍

{

{2,2,2,2,2,2,4,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,4,-1}, //《粉刷匠》

{2,2,2,2,4,2,2,4,2,2,2,2,4,2,2,2,2,2,2,2,2,4,4,4,4,2,2,2,2,4,2,2,4,2,2,4,4,2,2,2,2,2,2,2,2,4,4,4,4,4,2,2,2,2,4,4,2,2,4,4,2,2,2,2,2,2,2,2,4,4,4,4,-1}, //《小红帽》

{2,2,2,2,2,2,2,2,2,2,4,2,2,4,2,2,2,2,4,4,2,2,2,2,4,4,2,2,4,2,2,4,2,2,4,-1}, //《两只老虎》

{4,4,2,2,4,2,2,2,2,4,4,2,2,2,2,2,2,2,2,2,4,2,4,4,2,2,2,2,8,2,2,2,2,4,4,2,2,2,2,2,2,4,2,2,2,2,8,-1}, //《一分钱》

{6,2,6,2,2,2,2,2,8,2,4,2,4,4,2,2,2,2,4,4,4,4,2,2,2,2,8,2,2,2,2,2,2,4,2,2,2,2,4,4,8,-1}, //《丢手绢》

{4,2,2,2,6,2,2,2,2,8,4,2,2,4,2,2,4,2,2,8,2,2,2,2,2,4,2,2,2,2,2,8,4,2,2,2,2,4,2,6,2,2,4,16,4,2,1,2,2,4,2,4,2,2,1,2,2,12,2,2,4,2,1,2,2,4,2,4,2,4,2,2,16,4,2,1,2,2,4,4,2,2,2,2,4,4,2,2,8,8,4,2,2,16,-1}, //《七子之歌-澳门》

{2,2,2,2,2,2,4,2,2,2,2,4,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,-1}, //《找朋友》

{2,4,2,6,2,4,2,6,2,4,2,5,1,1,2,1,1,2,1,1,2,2,4,2,4,2,6,2,4,2,6,2,2,1,1,2,2,2,4,2,2,2,8,-1},//《感恩的心》

{4,4,4,4,4,4,4,4,4,4,4,4,5,2,6,4,4,4,4,4,4,4,4,4,4,4,4,5,2,6,4,4,4,4,4,2,2,4,4,4,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,4,4,4,4,5,2,6,-1},//《欢乐颂》

{2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,6,6,2,2,2,2,2,2,4,2,2,2,2,4,2,2,6,4,4,5,2,4,4,4,2,2,4,4,2,2,2,2,4,2,2,6,6,5,2,4,4,2,2,2,2,6,2,2,2,2,4,4,6,4,-1},//《我爱北京天安门》

{4,4,2,2,4,2,2,2,2,2,2,6,2,2,2,2,2,2,2,2,2,2,2,2,6,2,2,2,2,4,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,5,2,8,2,2,8,2,2,2,2,4,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,5,2,8,2,2,2,2,2,2,6,10,8,4,10,-1},//《北京欢迎你》

{2,2,2,2,6,2,2,2,2,6,2,2,4,2,2,4,2,2,2,2,2,2,2,2,6,-1},//《上学歌》

{6,4,3,2,8,4,4,4,2,2,4,8,4,4,2,2,4,3,2,4,4,6,4,2,2,4,2,2,8,4,6,4,3,2,8,4,4,4,2,2,4,8,4,2,4,2,4,4,4,2,2,4,2,2,2,4,2,4,2,2,8,4,-1},//《当兵的人》

{4,2,2,2,2,2,2,4,2,2,6,4,2,2,2,2,2,2,4,2,2,6,4,4,4,2,2,4,4,6,4,2,2,4,2,2,4,2,2,8,-1},//《茉莉花》

{4,4,2,2,4,2,2,2,2,4,4,2,2,2,2,2,2,4,2,2,2,2,4,4,4,2,2,4,2,2,2,2,2,2,4,4,4,2,2,4,4,2,2,2,2,6,4,2,2,4,4,2,2,2,2,6,-1},//《数鸭子》

{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,-1},//《洋娃娃和小熊跳舞》

};

uint code tab[]=

{

0,63628,63835,64021,64103,64260,64400,64524,

64580,64684,64777,64820,64898,64968,65030,

65058,65110,65157,65178,65217,65252,65283

};

void delay1(uint ms) //播放歌曲时实现节拍的延时函数

{

uchar t;

while(ms--) for (t=0;t<120;t++);

}

void delay(void)

{

uchar i;

for (i=300;i>0;i--);

}

void EX0_INT() interrupt 0

{

FY=0; LED1=0; LED2=1; STL0=STL0;

}

void EX1_INT() interrupt 2

{

FY=1; LED1=1; LED2=0;LED3=1;LED4=1;LED5=1;P2=0xff; Tone_Index=-1;Tone_Index++;

STH0=(tab[Song[k][Tone_Index]])/256;

STL0=(tab[Song[k][Tone_Index]])%6;

}

void time0_int(void) interrupt 1 using 0

{

TH0 = STH0;

TL0 = STL0;

SPK=!SPK; // 反相,产生输出脉冲

if(FY==0)

{P2=~DSY_CODE[k] ;}

else {if(FY==1) {P2=~GE_CODE[k];}}

}

void main(void)

{ LED1=0;

LED2=1;

LED3=1;LED4=1;LED5=1;

P2=0xff;

IE=0x87;

TMOD=0x01;

IT0=1;

IT1=1;

while(1)

{

if (KeyDown())

{

k = KeyNum(); // 调用键盘扫描函数

if(FY==0)

{

STH0 = tab[k]/256;

STL0 = tab[k]%6;

TR0 = 1; // 开始计数

while (KeyUp()==0); // 若没有松开按键,则等待,等待期间d奏该音符

TR0 = 0; // 若按键松开,则停止计数,不产生脉冲输出

}

else

{

while (FY==1)

{

if (Song[k][Tone_Index]==-1)

Tone_Index=0;

STH0=(tab[Song[k][Tone_Index]])/256;

STL0=(tab[Song[k][Tone_Index]])%6;

P2=~GE_CODE[Song[k][Tone_Index]] ;

TR0 = 1;

delay1(150Len[k][Tone_Index]);

Tone_Index++;

TR0 = 0;

}

}

if(k>=1&&(k<=7)){LED3=0;LED4=1;LED5=1;}

else

{if(k>=8&&(k<=14)){LED3=1;LED4=0;LED5=1;}

else

{if (k==0){LED3=1;LED4=1;LED5=1;}

else

{LED3=1;LED4=1;LED5=0;}} }

}

}

}

零基础的人想要写代码首先需要进行一定的学习,了解一些基础的编程知识,选择适合自己的程序语言,之后通过不断的学习就可以写代码。

从简单的、直接的几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器。这个过程中逐渐明白数组、指针、内存布局、函数,了解递归、栈、链表,然后学基本的数据结构。

C语言也好,python也好,得学会把自己的思考用程序实现。举个例子,想制定计划表,安排自己的时间,那这个问题就可以写个程序来实现;想做笔记、管理自己的文件,这也是一个程序。从简单的、直接的几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器。

代码组合

源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。

较为复杂的软件,一 般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如 何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。

以上就是关于什么是源代码全部的内容,包括:什么是源代码、怎么将源代码制作成脱离环境运行的应用程序。、什么叫做源程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10094852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存