什么叫源代码,源代码有什么作用

什么叫源代码,源代码有什么作用,第1张

源码也叫源代码、源程序,即编程者(程序员)编写的程序代码,一般都是用高级语言(basic、c等)构成。

源码的作用是程序员不必直接编写晦涩的机器语言,而以容易明白的高级语言代替,方便了程序的理解和修改。

源码经过编译,转换为微机可以执行的机器代码,即可以提高程序的运行效率,又可以保护编程者的版权利益!

得说明是什么型号的PLC啊,串口还是网口,VB6还是VBNET?

算了,写段代码,VBNET与Q系列以太网通讯的:

Imports SystemNet

Imports SystemRuntimeInteropServices

Public Class Form1

    Dim Handle1 As Int32

    Dim EntLink1 As Boolean

    Dim ScanCount1 As Long

    Dim PLC As New EntQsPlc_AscPlcClient'EntQsPlc_ASCDLL是Q系列以太网通讯组件

    Public Declare Function timeGetTime Lib "winmmdll" () As UInt32

    Private Sub Form1_Load(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles MyBaseLoad

        MeCenterToScreen()

        cmbReadMryItemsClear()

        cmbReadMryItemsAdd("X")

        cmbReadMryItemsAdd("Y")

        cmbReadMryItemsAdd("M")

        cmbReadMryItemsAdd("D")

        cmbReadMryItemsAdd("R")

        cmbReadMryItemsAdd("Z")

        '

        cmbWriteMryItemsClear()

        cmbWriteMryItemsAdd("X")

        cmbWriteMryItemsAdd("Y")

        cmbWriteMryItemsAdd("M")

        cmbWriteMryItemsAdd("D")

        cmbWriteMryItemsAdd("R")

        cmbWriteMryItemsAdd("Z")

        '

        cmbBitMryItemsClear()

        cmbBitMryItemsAdd("X")

        cmbBitMryItemsAdd("Y")

        cmbBitMryItemsAdd("M")

        '

        cmbReadTypeItemsClear()

        cmbReadTypeItemsAdd("INT16")

        cmbReadTypeItemsAdd("UINT16")

        cmbReadTypeItemsAdd("DINT32")

        cmbReadTypeItemsAdd("HEX32")

        cmbReadTypeItemsAdd("REAL32")

        cmbReadTypeItemsAdd("BIN16")

        '

        cmbWriteTypeItemsClear()

        cmbWriteTypeItemsAdd("INT16")

        cmbWriteTypeItemsAdd("UINT16")

        cmbWriteTypeItemsAdd("DINT32")

        cmbWriteTypeItemsAdd("HEX32")

        cmbWriteTypeItemsAdd("REAL32")

        cmbWriteTypeItemsAdd("BIN16")

        cmbReadMrySelectedIndex = 3

        cmbWriteMrySelectedIndex = 3

        cmbBitMrySelectedIndex = 2

        cmbReadTypeSelectedIndex = 0

        cmbWriteTypeSelectedIndex = 0

        lstReadItemsClear()

        txtWriteText = ""

        '

        cmbCmdTypeSelectedIndex = 0

    End Sub

    Private Sub butLink_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butLinkClick

        Dim re As Short

        Dim restr As String = ""

        re = PLCEntLink(Trim(txtLocalIPText), Val(txtLocalPortText), Trim(txtRemoteIPText), Val(txtRemotePortText), "DEMO", Handle1, 1000, CBool(cmbCmdTypeSelectedIndex))

        txtReLinkText = reToString

        If re = 0 Then

            EntLink1 = True

            MsgBox("PLC联接成功! ")

        Else

            EntLink1 = False

            MsgBox("PLC联接失败: " & restr)

        End If

    End Sub           

    Private Sub butClose_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butCloseClick

        Dim re As Short

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        re = PLCDeLink(Handle1)

        txtReCloseText = reToString

    End Sub

    Private Sub butRead_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butReadClick

        Dim re As Short

        Dim i As Short

        Dim RD() As Object

        ReDim RD(Val(txtReadCntText - 1))

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            ' Exit Sub

        End If

        Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbReadMrySelectedIndex + 1

        Dim typ As EntQsPlc_AscPlcClientDataType = cmbReadTypeSelectedIndex + 1

        re = PLCCmdRead(Handle1, mry, typ, CInt(txtReadAddText), CUShort(txtReadCntText), RD)

        txtReReadText = reToString

        lstReadItemsClear()

        For i = 0 To UBound(RD) Step 1

            If Not IsNothing(RD(i)) Then lstReadItemsAdd(RD(i))

        Next i

        If re <> 0 Then

            Timer1Enabled = False

            butScanText = "Cycle R/W"

        End If

    End Sub

    Private Sub butWrite_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butWriteClick

        Dim re As Short

        Dim i As Short

        Dim temp() As String

        Dim WD() As Object

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        ReDim WD(Val(txtWriteCntText) - 1)

        temp = Split(txtWriteText, vbCrLf)

        For i = 0 To UBound(WD) Step 1

            If i > UBound(temp) Then

                WD(i) = 0

            Else

                WD(i) = Trim(temp(i))

            End If

        Next i

        Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbWriteMrySelectedIndex + 1

        Dim typ As EntQsPlc_AscPlcClientDataType = cmbWriteTypeSelectedIndex + 1

        re = PLCCmdWrite(Handle1, mry, typ, CInt(txtWriteAddText), CUShort(txtWriteCntText), WD)

        txtReWriteText = reToString

        If re <> 0 Then

            Timer1Enabled = False

            butScanText = "Cycle R/W"

        End If

    End Sub

    

    

    Private Sub butScan_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butScanClick

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Timer1Enabled = Not Timer1Enabled

        If Timer1Enabled Then

            ScanCount1 = 0

            butScanText = "Stop R/W"

        Else

            butScanText = "Cycle R/W"

        End If

    End Sub

    Private Sub Timer1_Tick(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Timer1Tick

        Timer1Enabled = False

        Dim tim As Integer = timeGetTime

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        '

        Call butRead_Click(Nothing, Nothing)

        Call butWrite_Click(Nothing, Nothing)

        '

        If (Val(txtReReadText) < 0) Or (Val(txtReWriteText) < 0) Then

            butScanText = "Cycle R/W"

            Exit Sub

        Else

            ScanCount1 += 1

            txtScanCntText = ScanCount1

            txtScanPrdText = (timeGetTime - tim) & "ms"

        End If

        Timer1Enabled = True

    End Sub

    Private Sub butBitTest_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitTestClick

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim rd As Boolean

        Dim re As Short

        Dim mry As EntQsPlc_AscPlcClientPlcMemory = cmbBitMrySelectedIndex + 1

        re = PLCBit_Test(Handle1, mry, CUShort(txtBitAddText), rd)

        txtBitTestText = rd

        txtReBitText = re

    End Sub

    Private Sub butBitSet_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitSetClick

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim re As Short

        re = PLCBit_Set(Handle1, cmbBitMrySelectedIndex + 1, Val(txtBitAddText))

        txtReBitText = re

    End Sub

    Private Sub butBitRst_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles butBitRstClick

        If Not EntLink1 Then

            MsgBox("还未与PLC建立联接!")

            Exit Sub

        End If

        Dim re As Short

        re = PLCBit_Reset(Handle1, cmbBitMrySelectedIndex + 1, Val(txtBitAddText))

        txtReBitText = re

    End Sub

End Class

首先,"兼容"有两重含义-二进制文件兼容和源代码兼容。gambas与vb在这两个层面上都不兼容。

Binary compatible(二进制文件兼容)指一个系统上编译的二进制可执行文件是否能在另一个系统上运行。Gambas是Linux等类UNIX系统的开发环境,编译出来的可执行文件自然只能运行在Linux等类UNIX *** 作系统中。虽然有报道有人用cygwin编译windows版的gambas,但是在cygwin/windows环境下gambas只能编译命令行程序,没有图形工具。

Source compatible(源码兼容)指同一份程序源代码可以在不同 *** 作系统成功无误编译成二进制可执行文件。gambas与visual basic 6的语法非常近似,但是仍然是不同的(比如数组x的第9个元素在gambas中为x[9],而在VB中为x(9);关键字end的意思也有差别),见官方维基的解释(gambaswikiorg/wiki/doc/diffvb)。因此,Gambas能编译成功的程序代码拿到windows的VB上一般要经过一些修改。

Gambas (Gambas Almost Means BASic),项目的初衷是创造一门与Basic(尤其是Visual Basic)近似的语言,而不是对VB原原本本的克隆。

最后,Gambas是一门比较年轻的语言,用户较少,连一般的Linux发行版都默认不安装,在一台Linux上编译好的程序在另一台没有gambas的Linux上运行是还需要额外安装运行时环境,相应程序移植到Windows下就更困难了。

源程序也叫源码,就是最开始编写的程序,计算机并不能识别,需要经过编译生成目标程序。

目标程序是能够被计算机识别执行的,比如我们在网上下载的软件,例如QQ,迅雷,这一类软件都是目标程序,都是经过编译的,商业公司一般不会发布源码,源码涉及到商业机密。

大家可以看看下面对两者的区分:

1 源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。

2 目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

解析:

BASIC是Beginner's All-purpose Symbolic Instruction Code的缩写。意即初学者通用符号指令代码。它是一种国际通用的计算机高级语言。一般认为它是从FORTRAN中提炼、简化而来。因此简单易学,BASIC入门了,再学其它高级语言也就不难了。

2 BASIC语言的版本

电脑语言一般都有版本序列。BASIC语言也经历了不断的发展与改进,形成了不同环境下的不同版本。如BASIC、BASICA、F-BASIC、H-BASIC、Q-BASIC等等。但一般来说都大同小异、基本的东西不变、较高版本兼容较低版本。所以需恐慌与诧异。让我们从最基本的也就是BASIC来学起,先入门,有兴趣的同学,就可以通过自学深入和提高。

3 BASIC语言的特点

(1)简单易学。基本BASIC的语句一共只有17种,且使用准英语或者叫类英语,表达式与运算符号也与数学中使用的差不多。

(2)会话功能。BASIC是高级语言,具有很强的会话功能。语句、表达式及运行到某句出错时,电脑会进行人机对话,及时给出提示等。因此可以边做边改。直至正确与满意为止,这一点对初学者十分方便。

(3)环境特点。BASIC程序的运行分解释型与编译型两种。一般在学习与编制程序时使用解释型环境。也就是说要在DOS下先运 行BASICEXE文件,进入BASIC的解释环境状态(其提示符是OK),编写程序所形成的文件其扩展名约定为BAS。这就叫BASIC的源程序。当源程序调试好了,反复运行都满意,可以用BASIC的编译工具软件把它编译成扩展名为EXE的文件便能直接在DOS下运行。有关BASIC的启动知识

C语言是目前世界上流行、使用最广泛的高级程序设计语言。

C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

常用的编译软件有Microsoft Visual C++,Borland C++,Wat C++ ,Borland C++, Borland C++ Builder,Borland C++ 31 for DOS,Wat C++ 110 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 31,Microsoft C,High C,等等

C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX *** 作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的DMRITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX *** 作系统推广,1977年Dennis MRitchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian WKernighian和Dennis MRitchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

C语言的特点

1 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行 *** 作, 而这三者是计算机最基本的工作单元。

2 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4 C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5 C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6 C语言允许直接访问物理地址,可以直接对硬件进行 *** 作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7 C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8 C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种 *** 作系统, 如DOS、UNIX,也适用于多种机型。

以上就是关于什么叫源代码,源代码有什么作用全部的内容,包括:什么叫源代码,源代码有什么作用、能给我发个VB与三菱PLC通讯的源代码实例吗,非常感谢啊、gambas编写的basic程序是否能兼容windows下的vb等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10623983.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存