ВОЗМОЖНОСТИ УЛУЧШЕНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PHP С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ ПРЕПРОЦЕССИНГА
Журнал: Научный журнал «Студенческий форум» выпуск №24(291)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №24(291)
ВОЗМОЖНОСТИ УЛУЧШЕНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ PHP С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ ПРЕПРОЦЕССИНГА
PHP – это один из распространённых язык программирования общего назначения с открытым исходным кодом. PHP специально сконструирован для веб-разработок и его код может внедряться непосредственно в язык разметки HTML.
Разберем проблемы и улучшения, которые можно добавить в язык программирования PHP для уменьшения его кодовой базы.
Избыточные символы выделения блока инструкций
В грамматике языка PHP определены такие символы как «{» и «}», что являются символами начала и конца блока инструкций. Данный символ используется для указания блоков инструкций структур языка PHP, функций, условий, циклов и пользовательских блоков инструкций.
При решении данной проблемы было принято решение в реализации альтернативного варианта, который предполагает под собой определение границ через отступы в программном коде. Для визуального выделения начала блока (для классов и функций) будет использоваться символ «:».
Пример использования данного правила и эквивалентного кода на целевом языке представлены в таблице 1.
Таблица 1.
Уменьшение избыточных символов выделения блоков инструкций
Исходный язык |
Целевой язык |
<?php
class A: echo 'Переменная $this определена ('; echo get_class($this); echo ")\n"; else: echo "Переменная \$this не определена.\n";
|
<?php
class A { function foo() { if (isset($this)) { echo 'Переменная $this определена ('; echo get_class($this); echo ")\n"; } else { echo "Переменная \$this не определена.\n"; } |
Излишне длинные ключевые слова в синтаксисе функций
Для создания функций или методов класса в языке программирования PHP используется ключевое слово «function». Для уменьшения величины количества символов в строке исходного кода было принято решение, что данное ключевое слово можно сократить до «func».
Пример использования данного правила и эквивалентного кода на целевом языке представлены в таблице 2.
Таблица 2.
Уменьшение избыточности длинны ключевого слова в синтаксисе функции
Исходный язык |
Целевой язык |
<?php
func foo() funс bar() …
|
<?php
function foo() { function bar() { … } } |
Избыточные ключевые слова в синтаксисе класса
При объявлении класса на языке программирования PHP в синтаксисе класса используются следующие ключевые слова:
1) extends;
2) implements;
3) public;
4) protected;
5) private.
extends
Ключевое слово «extends» используется для указания родительского класса. Для уменьшения величины количества символов в строке исходного кода было принято решение о том, что данное ключевое слово необходимо упросить, заменив его на круглые скобки «( )», внутри которых будут описываться от какого класса было произведено наследование текущего.
Пример использования данного правила и эквивалентного кода на целевом языке представлены в таблице 3.
Таблица 3.
Уменьшение избыточности ключевого слова «extends» в синтаксисе класса
Исходный язык |
Целевой язык |
<?php
class B(A): …
|
<?php
class B extends A { … } |
implements
Ключевое слово «implements» используется для реализации интерфейса для указанного класса. Для уменьшения величины количества символов в строке исходного кода было принято решение о том, что данное ключевое слово необходимо упросить, заменив его на квадратные скобки «[ ]» внутри которых будут описываться от какого класса было произведено наследование текущего.
Пример использования данного правила и эквивалентного кода на целевом языке представлены в таблице 4.
Таблица 4.
Уменьшение избыточности ключевого слова Implements в синтаксисе класса
Исходный язык |
Целевой язык |
<?php
class C[A]: …
class D[A, B]: … |
<?php
class C implements A { … }
class D implements A, B { … } |
Ключевые слова public, protected, private
Ключевые слова public, protected, private являются областями видимости, которые указывают на уровень доступ к свойствам и методам класса. Доступ к полям и методам экземпляра класса, объявленным как «public» (общедоступный), разрешён из любого места класса и за его пределами. Модификатор «protected» является защищённым типом доступа к данным и разрешает доступ ним самому классу, в котором он объявлен, наследующим его классам, а также родительским классам. Модификатор «private» представляет из себя закрытый тип доступа к данным и ограничивает область видимости так, что только класс, где объявлен сам элемент, имеет к нему доступ. Для уменьшения величины количества символов в строке исходного кода было принято решение о том, что вышеописанные ключевые слова необходимо упросить, заменив их на разметку UMLследующим образом:
- «public» заменяется на символ «+»;
- «protected» заменяется на символ «№»;
- «private» заменяется на символ «-»;
Пример использования данного правила и эквивалентного кода на целевом языке представлены в таблице 7.
Таблица 7.
Уменьшение избыточности ключевых слов уровней доступа в синтаксисе класса
Исходный язык |
Целевой язык |
<?php
class C(A)[B]: +$var1 -$var2
+func func1($a, $b): ...
№func func2($a, $b): ...
|
<?php
class C extends A implements B { public $var1; private $var2;
public function func1($a, $b) { ... }
protected function func1($a, $b) { ... } } |