The protocols such as HTTP, IP, BGP are written in programming languages or simply plain English text ?
If it is written in plain English, then how it is communicated with web browser, switches/Routers ?
The specifications of protocols are normally written in plain English; when they are implemented they are written in a variety of programming languages. They are converted by programmers who read the specification and figure out how to make it work on the computer they're working with.
One of the shortest easiest to understand specifications is "RFC 868 Time Protocol"
A programmer sits and figures out how to do that, perhaps
s = socket.socket() s.connect((hostname, 37)) s.recv(4) ...
Occasionally a program already exists and a spec is written from that, so that others can recreate it in other programming languages or environments.
Even more occasionally, the traffic between working programs is examined, and a spec is written as an explanation of what was seen. The most famous of these is how the Samba team figured out the details of the SMB file service protocol. The "French Cafe" technique