程序式程式設計和函數語言程式設計語言的區別


程序式程式設計是一種程式設計型別,其中建立了由一系列指令組成的不同函式或例程。函數語言程式設計用於組織函式。每個函式都必須以能夠執行所需任務的方式設定。我們將討論程序式程式設計語言和函數語言程式設計語言之間的區別。

程序式程式設計語言

程序式程式設計語言具有您必須定義的函式。這些函式需要具有一組指令,當呼叫函式時應執行這些指令。您必須考慮必須執行的每個指令。需要對指令進行適當的組織,以便能夠成功執行它們。

下面給出一個過程的示例:

#include <stdio.h>
void poo() {
   int a = 1;
   int b = 2;
   int c = a + b;
   printf(“Result: %d/n”, c);
}
int main()  (
   poo();
}

在這個例子中,您可以看到按正確順序編寫的步驟。程序式程式設計語言遵循線性自頂向下的方法,其中每個函式都包含一系列程式碼。在這些語言中無法建立與不同物件的真實世界相似性。這是面嚮物件語言的一個特性。

程序式程式設計語言特性

程序式程式設計語言具有許多特性,下面將討論這些特性:

預定義函式

這些是程式語言庫中已經可用的函式。您只需使用庫並呼叫函式即可。通常,高階程式語言具有庫和預定義函式的功能。為了在 Java 中列印某些內容,您必須使用 system.out.println()。此函式用於在命令列或控制檯上列印任何內容。

區域性變數

區域性變數是在函式內部定義的變數,只能在該函式中使用。其他函式無法呼叫它。這有助於函式使用該變數,並且不會干擾其餘程式碼。

下面給出一個示例:

#include <stdio.h>
void sum() {
   int a = 4;
   int b = 5;
   int c = a + b;
   printf("Result: %d
", c); } int main() { sum(); }

在這個例子中,變數 a、b 和 c 對函式 sum() 是區域性的,其他函式無法呼叫它們。

全域性變數

全域性變數是在函式外部定義的變數,任何函式都可以使用它。您不能在任何函式中定義與全域性變數同名的變數。可以從任何函式訪問這些變數。

這是一個全域性變數的示例:

#include <stdio.h>
int a;
void sum() {
   a=1;
   int b = 2;
   int c = a + b;
   printf("Result: %d
", c); } void difference() { a = 5; int b = 4; int c = a - b; printf("Result: %d
", c); } int main() { sum(); difference(); }

在這個例子中,變數 a 是全域性的,它在函式 sum() 和 difference() 中被訪問。可以從任何函式訪問此變數。變數 b 和 c 對 sum() 和 difference() 函式是區域性的,因此其他函式無法使用它們。

模組化

模組化是軟體開發中的一種過程,其中軟體的功能被劃分為不同的模組。每個模組都必須與其它的模組一起執行其任務。

程序式程式設計語言的優點

程序式程式設計語言有很多優點,我們將在下面列出其中一些。

  • 如果您正在編寫通用程式,這是一個不錯的選擇
  • 這是一種編寫程式碼的簡單方法,對於想要學習程式設計的初學者來說是一個不錯的選擇
  • 可以輕鬆跟蹤程式的流程,這有助於消除任何錯誤

程序式程式設計語言的缺點

程序式程式設計語言有一些缺點,它們列在下面:

  • 程序式程式設計語言的程式碼無法重用
  • 程式碼不安全,因為資料在整個程式中都是可見的

程序式程式設計語言的示例

一些程序式程式設計語言如下:

函數語言程式設計語言

函數語言程式設計是一種程式設計型別,其中程式碼根據函式進行組織。每個函式都定義了一個任務以及引數。必要的資料在引數中傳遞以獲取結果。函數語言程式設計基於純函式。

純函式

純函式負責根據給定的輸入提供相同的輸出。例如,如果我們使用 math.cos(x) 函式,結果將取決於 x 的值。math.cos(x) 函式不會干擾其餘程式碼。純函式具有許多下面列出的特性:

  • 純函式的輸出相同,並且取決於給定的輸入
  • 當呼叫函式並替換其值時,純函式具有引用透明性
  • 純函式中的輸入引數不會修改整個程式中給定的任何內容
  • 僅使用函式中給定的引數,並且它們僅對給定的變數起作用

下面給出一個純函式的示例:

#include <stdio.h>
int sum(a, b) {
   return a+b;
}
int main() {
   int var1 = 1;
   int var2 = 2;
   int var_add = sum(var1, var2);
   printf("Result: %d
", var_add); }

函數語言程式設計的概念

在這裡,我們將討論函數語言程式設計的不同概念:

不可變變數

不可變變數在初始化後永遠不會改變,而可變變數可以透過賦予不同的值來改變。在函數語言程式設計中,只能使用不可變變數。如果您必須更改值,則應在新的變數中初始化不可變變數。

避免共享狀態

變數也可以定義為具有共享作用域。可以在任何地方修改此類變數的值。跟蹤此類變數非常困難。因此,函數語言程式設計中不使用變數的共享狀態。

遞迴

遞迴是一個概念,用作迭代的替代方案,迭代是藉助 while() 和 for() 迴圈完成的。每個函式呼叫都會重複,直到滿足基本條件。

函數語言程式設計語言的優點

函數語言程式設計語言有很多優點,它們列在下面:

  • 純函式提供相同的輸出,並且不會干擾程式的其餘部分
  • 函數語言程式設計是透明的,因為可以顯式地傳遞引數以返回值
  • 開發人員可以輕鬆除錯整個程式

函數語言程式設計的缺點

函數語言程式設計有一些缺點,它們列在下面:

  • 對每次迭代使用遞迴可能存在問題
  • 變數的不可變性降低了程式碼的效能

函數語言程式設計語言的示例

程序式程式設計語言和函數語言程式設計語言的區別

在這裡,我們將討論程序式程式設計語言和函數語言程式設計語言之間的區別,它們在下面的表格中給出:

函數語言程式設計語言 程序式程式設計語言
資料和函式之間沒有任何區別。輸出取決於函式。 資料和函式之間存在差異,輸出取決於函式的操作。
透過函數語言程式設計語言進行並行和併發程式設計。 程序式程式設計語言用於通用程式設計
函數語言程式設計中可用的資料是不可變的 可以隨時隨地訪問資料
程式碼透過模組和函式進行組織 程式碼透過模組和過程進行組織
測試很容易 測試很難
由於使用了大量變數,因此其效能較慢 它的效能很快

結論

過程式和函數語言程式設計語言都有其自身的優點和缺點。它們在變數宣告、函式、共享變數等方面彼此不同。它們兩者都已應用於現代程式設計。

更新於: 2024-07-03

244 次檢視

開啟你的職業生涯

完成課程獲得認證

立即開始
廣告